犀牛书(老版)6

第三章 类型,值和变量

⭐3.6 包装(Wrapper)对象

JS对象是复合型的值:它们是 属性 或 具名值 的合集。
我们使用.记号来引用属性的值。
当属性的值是一个函数时,我们管它叫做方法
我们使用o.m()来调用对象o的方法m

我们之前还知道,字符串也拥有属性和方法:在这里插入图片描述
字符串并不是对象,为什么它们还拥有属性?
当你引用字符串s的某个属性时,JS都把这个字符串值,通过调用new String(s)方法,转换成一个对象。
这个对象继承了字符串方法,用来解决(resolve)上面这个属性引用的问题(原字符串没属性,相当于“借台唱戏”,借临时对象这个“台”,唱它想引用的那个属性的“戏”)。
当resolve完成,这个新创建出来的对象就被抛弃了,戏唱完了拆台。(但具体实现可能这个新建,然后销毁的过程会不太严格,但大体是这个过程)

数字和布尔值和字符串一样,也有这样的一个过程:Number()Boolean()构造器创建一个临时对象,然后用这个临时对象调用方法。

然而nullundefined没有包装对象,也就不能调用属性,会报TypeError没台唱不了戏

看一个例子:在这里插入图片描述
这个临时对象就叫包装对象,把xx值和xx对象区分开来。
但这都是底层细节,不用抠得太细,知道有这么一回事儿,并且知道这些属性都是只读,你也不能给它定义新属性(其实是可以定的,就是用不了)就够了。
值==包装类true值===包装类false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值