这是我一直认为理所当然的事情,但我想知道的原因。
例如,我为什么要这样做:
var a = new Number(1);
a.test = 'string';
console.log(a.test);
>>> 'string'
但是当我做的时候
var a = 1;
a.test = 'string';
console.log(a.test)
>>> undefined
为什么他们的行为如此不同?
编辑:Andrea在这个帖子中比我能做的更好地表达了这个问题:Javascript primitive types and corresponding objects
答案 0 :(得分:0)
如果JavaScript检测到尝试将属性分配给基元,它确实会将基元强制转换为对象。
https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/