3

这是我一直认为理所当然的事情,但想知道其中的原因。

例如,为什么我可以这样做:

var a = new Number(1);
a.test = 'string';
console.log(a.test);
>>> 'string'

但是当我这样做时

var a = 1;
a.test = 'string';
console.log(a.test)
>>> undefined

为什么他们的行为如此不同?

编辑:安德里亚对这个问题的表述比我在这个线程中的表述要好得多:Javascript原始类型和相应的对象

4

1 回答 1

0

如果 JavaScript 检测到尝试将属性分配给原语,它确实会将原语强制转换为对象。

https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/

于 2013-07-04T13:59:50.583 回答