day-9.4 构造函数new Number 将基础数据类型转换成对象的理解
JS里面万物皆对象,基础数据类型的数据类型虽然从严格意义上来说不是对象,但是从广泛的语言设计的原理上来理解,其实也是对象。
JS中有一种叫包装对象的方法,可以通过该方法将基础数据类型变成对象。
比如
var a = 123; a.haha = "a1"; console.log(a.haha); // 输出undefined console.log(typeof a); //输出Number var b = new Number(a); b.haha = "b1"; console.log(b.haha); //输出b1 console.log(typeof b); //输出object
可以看到通过new number () 这个构造函数函数名用new 关键字,是一个构造对象的关键字,其实json也是new 去构造的一个对象的表达式,原理一样只不过写法不同。
这里通过new Number 将 数字 a 构造成了对象a , 虽然数值还是数字,但是已经具备了可以存储属性的特点。比如上例中的 b.haha 这个属性存储的值就是b1;
对a 和 b 分别用 console.dir() 调试查看的时候,可以看到输出结果不一样

浙公网安备 33010602011771号