基本类型与包装类型

基本类型与包装类型
如图 var str=”ddd” 是string(基本类型),本身是没有方法、属性。当尝试把基本类型的str当做对象一样访问时,例如:str.length;
解释器会创建一个临时的包装对象,伪代码:
[[tempObj]] = new String(str)
[[tempObj]].length; // 返回具体的length
delete [[tempObj]]; // 销毁临时对象
重复访问str.length会重复创建这个临时对象。
所以str.t赋值可以成功,但再次访问str.t返回undefined,因为每次创建的临时包装对象都是不同的。
而 var str=new String(“str”);是一个包装类型对象,给它添加属性会被储存起来。
基本类型与包装类型
感觉还有很多不足与不到位的地方,烦请大家多多批评指正。