JavaScript 包装对象
什么是包装对象
什么是包装对象看一个例子:
1 | var str = 'This is a string'; // 定义一个字符串 |
定义一个字符串,它不是对象,为什么它会有属性方法呢?
原因就是JavaScript会将字符串值通过new String()的方式创建临时对象,而这个临时对象继承字符串的方法。
结果就像上面看到的,可以访问调用继承的属性方法。
同字符串一样,数字和布尔类型的值也会使用相应的Number()和Boolean()构造函数,去实例化这个临时对象,然后继承各自的方法,这就是包装对象。
与显式的构造函数创建的包装对象有什么不同
直接上代码
1 | var str = 'This is a string'; // 定义一个字符串 |
字符串存取值所创建的临时对象,所有属性操作都在临时对象上,并不能被保存下来,所以说无论设置什么属性都是没有用的。
而通过构造函数显式创建的包装对象是可以添加属性方法的,因为它是实例化的对象,是可以赋予属性及方法的。
值表现
1 | str == strObj // true == 会使strObj调用toStrng()方法转换成字符串与之比较 |
ps:
null 和 undefined 没有包装对象,访问属性会报类型错误。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Monzeye的博客!
评论