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

js对象取值

js对象取值

慕斯709654 2018-11-06 13:18:03
  var obj ={        name:'nnn',        age:22,        job:'worker'    };      var arr=[        'name',        'age',        'job'    ];    for (var i=0 ;i<arr.length;i++){        document.writeln(arr[i]+':'+obj[arr[i]]);    };//有值     for (var i=0 ;i<arr.length;i++){        document.writeln(arr[i]+':'+obj.arr[i]);    };//没值,不报错    这两种有什么不同,出现上面的情况的原因是什么,请大神帮我解惑
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

你确定不报错? 看看控制台信息
obj.arr[i] 这个调用是错的
obj.arr 不存在, 等于 undefined
undefined[i] 肯定会出错


首先 obj 和 arr 都可以用 [] 的方式来取值:
这个例子的两种做法不同点在于:
obj[arr[i]] 是先取 arr[i] 再赋值给 obj[]:

arr[i]==> 'name' ==> obj['name'] ==> 取值成功

obj.arr.[i] 是先取 obj.arr, 再通过obj.arr取[i]:

obj.arr==> undefined ==> undefined[i] ==> 报错

嵌套的由内而外
链式由左往右


查看完整回答
反对 回复 2018-12-09
  • 1 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

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