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() 调试查看的时候,可以看到输出结果不一样

 

 

 

posted @ 2018-06-13 18:48  bibiguo  阅读(156)  评论(0)    收藏  举报