猿问
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})就是用动态访问的原理来实现的
1
0
0
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不知道这是不是你想问的。。
1
0
0
nickylau82
没有任何区别
0
0
0
随时随地看视频
慕课网APP
相关问题
为什么字体颜色在Eclipse上没有变化
2 回答
相关分类
Html/CSS
为什么字体颜色在Eclipse上没有变化
2 回答
Html5
JavaScript
我要回答