浅析包装对象

JS中的数据类型有7种,Number、String、Boolean、Null、Undefined、Symbol、Object,只有Object是复杂类型。Object上存放的数据以键值对形式存储,但是来看这张图


image.png

为什么没有属性值的普通类型能调用方法?
类似的,number类型也可以。(注:这里不能写成1.toString(); 会发生语法报错)


image.png

其实这是因为产生了临时包装对象:JS引擎在执行这句话时,检测到1是简单数据类型,会创建一个临时包装对象,使用完(执行完这句话后)就销毁。
可以将上述过程想象成:
var n1 = new Number();
n1.toString();
n1 = null;

临时包装对象只在(1).toString();这一句话执行期间存在,执行完就销毁。

var n1 = 1;
n1.xxx = "临时对象上的属性";  // 给临时对象添加属性
console.log(n1.xxx);  // undefined
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容