var n1 = new Number(5);
var n2 = 5;
console.log('n1 instanceof Number:', n1 instanceof Number);
console.log('n2 instanceof Number:', n2 instanceof Number)
console.log('n1.__proto__ == Number.prototype:', n1.__proto__ == Number.prototype);
console.log('n2.__proto__ == Number.prototype:', n2.__proto__ == Number.prototype); // Number 在 n2原型链上
运行结果:n2.__proto__ == Number.prototype:true
不是说明了,Number的prototype 属性在n2原型链上吗?
那 n2 instanceof Number
应该为true才对,为什么为false?
原始类型又称包装类型,比如数字5,他只是一个数字,为什么可以调用toFixed函数,为什么可以像你写的获取__proto__ 属性,因为它在使用
.
的时候,会在底层包装一层,变成new Number(5)去调用函数,去获取属性