为什么分配对象属性值后无法读取?

时间:2017-06-07 06:34:03

标签: javascript

var a = 1;
a.a = 2;
console.log(a.a);

最后,为什么输入是未定义的,而不是2

1 个答案:

答案 0 :(得分:2)

当您将数字1分配给变量a(var a = 1;)时,a是一个数字。 Altough Javascript没有具体的类型,系统从那个时间点开始将变量a视为数字。因此,您无法向a添加属性,因为它不是对象。

这是一个对象和变量的小例子:



var a = 1;
console.log(typeof a); //prints number

a.a = 2;
console.log(typeof a); //still a number

var a = {} //redeclare a as an object
a.a = 2; //an object can have properties (a.a)
console.log(typeof a); //prints object
console.log(a.a); //prints 2