包装对象

原文地址:https://wangdoc.com/javascript/

定义

对象是JavaScript语言最主要的数据类型,三种原始类型的值--数值、字符串、布尔值--在一定条件下,也会自动转为对象,也就是原始类型的包装对象。所谓包装对象,就是分别与数值、字符串、布尔值相对应的NumberStringBoolean三个原生对象。这三个原生对象可以把原始类型的值变成对象。

实例方法

三种包装对象各自提供了许多实例方法。以下介绍它们共有的、从Object对象继承的方法:valueOftoString

valueOf()

valueOf方法返回包装对象实例对应的原始类型的值。

toString()

toString返回对应的字符串形式。

原始类型与实例对象的自动转换

原始类型的值可以自动当做包装对象调用,即调用包装对象的属性和方法。这时,JavaScript引擎会自动将原始类型的值转为包装对象实例,在使用后立刻销毁实例。自动转换生成的包装对象是只读的,无法修改。

var s = "hello world";
s.x = 123;
s.x // undefined

自定义方法

除了原生的实例方法,包装对象还可以自定义方法和属性,供原始类型的值直接调用。

String.prototype.double = function() {
    return this.valueOf() + this.valueOf();
};
"abc".double();
// abcabc

但是,这种自定义的方法和属性,只能定义在包装对象的原型上,如果直接对原始类型的变量添加属性,则无效。

原文地址:https://www.cnblogs.com/chris-jichen/p/10060045.html