比如odiv.num和odiv[num].的区别是什么
3 回答
已采纳
慕函数0883431
TA贡献4条经验 获得超1个赞
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
TA贡献101条经验 获得超107个赞
假设有一个对象:
odiv = { num: 1 };
如果我要获取其中的num的值,可以有两种方式:
console.log(odiv.num); //1 console.log(odiv["num"]); //1
下面一种方式是错的:
console.log(odiv[num]); //报错:Uncaught ReferenceError: num is not defined
不知道这是不是你想问的。。
添加回答
举报
0/150
提交
取消