var a = 'b';
var obj = {};
obj[a] = 1;
那么问题来了console.log(obj.b)
为什么会打印1,obj的属性a为什么会访问到外部的变量a
var a = 'b';
var obj = {};
obj[a] = 1;
那么问题来了console.log(obj.b)
为什么会打印1,obj的属性a为什么会访问到外部的变量a
不然你以为打印出什么?
var a = 'b';
var obj = {};
obj[a] = 1; ===> obj['b'] = 1;
obj['b'] ===> obj.b;
这样不一样?
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
因为
var a = 'b';
所以
obj[a]
等同于obj['b']
,所以就是onj['b'] = 1
,所以obj.b = obj['b'] = 1
js
中对象想获得属性有两种方式,一个是obj.a
,一个是obj[a]
;前者的a
表示对象中的key
,而[]
的写法表示a
是一个变量,你如果写成obj['a']
,这时候a
就成了一个字符串,所以也会被当成obj
对象中的一个key