猿问

JS中 .和[]的区别是什么

比如odiv.num和odiv[num].的区别是什么

起个名字有那么困难
浏览 2114回答 3
3回答

慕函数0883431

odiv.num 可以理解为是一个静态访问对象的属性(或者对象的方法),num 是一个变量名;odiv[num]  这个就是动态的访问属性(或者方法),[ ] 里面是一个字符串,二者效果是一样的,但是用法不同;静态的按变量名访问,比较单一,不可以修改;动态的可以用赋予字符串的方式访问,灵活性更大,比较常见的是可以遍历对象的属性;比如说 odiv 有width,height  ,color,opcity ,border 等等好多属性;用静态的就会是这样: odiv.width ; odiv.height; odiv.color; odiv.opcity; odiv.border //只能这样一个一个手写;列举出来,不能用for 之类的语句遍历;因为odiv.num              //这个 num 不能修改,它是变量名用动态的就会是这样:for(var attr in odiv){    console.log( odiv[attr]) } //全部都搞出来了 循环中 attr 会自动赋值成'width';'height'.....从而访问到odiv 的属性用处就是既然能自动遍历了,就可以赋值修改了;像Jquery 的 $(odiv).css({    width:xx,    height:oo})就是用动态访问的原理来实现的

super_mb

假设有一个对象:odiv = {     num: 1 };如果我要获取其中的num的值,可以有两种方式:console.log(odiv.num); //1 console.log(odiv["num"]); //1下面一种方式是错的:console.log(odiv[num]);  //报错:Uncaught ReferenceError: num is not defined不知道这是不是你想问的。。

nickylau82

没有任何区别
随时随地看视频慕课网APP
我要回答