为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

比如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

})

就是用动态访问的原理来实现的

查看完整回答
1 反对 回复 2016-07-09
?
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

不知道这是不是你想问的。。

查看完整回答
1 反对 回复 2016-07-09
?
nickylau82

TA贡献128条经验 获得超67个赞

没有任何区别

查看完整回答
反对 回复 2016-07-09
  • 3 回答
  • 1 关注
  • 2113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信