变量作为表达式属性定义对象

var a = 'b';


var obj = {};


obj[a] = 1;

那么问题来了console.log(obj.b)为什么会打印1,obj的属性a为什么会访问到外部的变量a

阿晨1998
浏览 528回答 1
1回答

慕码人2483693

因为var a = 'b';所以obj[a]等同于obj['b'],所以就是onj['b'] = 1,所以obj.b = obj['b'] = 1js中对象想获得属性有两种方式,一个是obj.a,一个是obj[a];前者的a表示对象中的key,而[]的写法表示a是一个变量,你如果写成obj['a'],这时候a就成了一个字符串,所以也会被当成obj对象中的一个key
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript