首页 > Web开发 > 详细

原始类型的方法(字符串不是对象,为什么可以在js调用方法?)

时间:2020-07-12 00:07:54      阅读:104      评论:0      收藏:0      [点我收藏+]

原始类型的方法

前言

总所周知,在JS中,数据类型有8种,其中原始类型有7种,分别是stringnumberbooleannullundefinedsymbolbigint。以及引用类型1种,object

一般来说,能调用方法的只有对象。如果一个变量为字符串,是无法调用属性或者方法的。

let a = "alex";
a.age = 18;
alert(a.age); // undefined  

但是在我们日常中,经常会使用例如toUpperCase()的方法,可以直接使用在原始类型上。

let str = "alex";
alert(str.toUpperCase()); // ALEX

##原因

在上面这个例子中,“对象包装器”发挥了作用。“对象包装器”是为了实现可以在原始对象上使用方法,而采取的一个解决方法,在内部实现了这样的流程:
1.在访问str属性的时候,会创建一个包含字符串字面值的特殊对象,并且具有有用的方法,例如 toUpperCase()
2.该方法运行并返回一个新的字符串
3.特殊对象被销毁,只留下原始值 str

值得注意的是null undefined没有任何“对象包装器”,也没有任何方法,任何调用都会报错。

原始类型的方法(字符串不是对象,为什么可以在js调用方法?)

原文:https://www.cnblogs.com/zhangzidian/p/13285447.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!