原文地址:https://wangdoc.com/javascript/
定义
对象是JavaScript语言最主要的数据类型,三种原始类型的值--数值、字符串、布尔值--在一定条件下,也会自动转为对象,也就是原始类型的包装对象。所谓包装对象,就是分别与数值、字符串、布尔值相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成对象。
实例方法
三种包装对象各自提供了许多实例方法。以下介绍它们共有的、从Object对象继承的方法:valueOf和toString。
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
但是,这种自定义的方法和属性,只能定义在包装对象的原型上,如果直接对原始类型的变量添加属性,则无效。