包装对象: 基本类型都有自己对应的包装对象(string-->String; number --> Number; Boolean -->Boolean)
思考:基本类型有哪些?引用类型又有哪些?
var str = new String('helllo');
console.log(typeof str); //object 这个时候str就是不是基本类型,而是对象了
上面例子str是对象,那么,它有方法charAt()就不足为奇了,但是:
var str = 'helllo';
str.charAt(0);//基本类型会找到对应的包装对象类型,然后包装对象把所有的属性和方法给了基本类型,然后包装对象消失
var str = 'hello';
str.number = 10;//基本类型要添加一个属性,它就会去找对应的包装对象类型,在这个基本类型包装对象下面去创建一个number的属性,
//添加完成之后,包装对象就消失了
console.log(str.number); //undefined 包装对象消失后,在调用这句话的时候,str.numbr又重新的添加了一个对象,这个对象跟上一句中的对象不是同一个对象
上面代码与下面的不同是:
String.prototype.lastValue = function() {}//这个是添加在原型上的,所以可以找到