js中的包装对象。

  我们都知道在js中普通类型的变量是没有属性和方法的,然后有时却并不是这样。

var str = "努力,奋斗";
console.log(str.length); //5
var num = 10;
console.log(typeof num.toString()); //string

  为什么会这样?因为一旦我们在普通类型的变量中使用了属性或者方法,js就会自动new一个对应的对象。

var str = "努力,奋斗";
console.log(str = new String("努力,奋斗").length);

  会将变量的内容添加到对象的第一个参数中,其实这个这个创建的过程就叫做包装对象,new String就是str的包装对象。但是值得注意的是这个包装对象一旦运行以后就会销毁。

var str = "努力,奋斗";
str.index = 10;
str.fn = function(){
    console.log(str);
}
console.log(str.index); //undefined
str.fn(); //报错

  可以更简单的理解,就是这些基本类型只能使用包装对象的提供的属性和方法,而不能自定义属性和方法。

原文地址:https://www.cnblogs.com/pssp/p/5229320.html