原始值是不可能有属性和方法的,但str.abc=1 不报错,为什么呢?因为经历了一个包装类。(boolean,String,number的原始值都可以加属性和方法,因为有包装类,但是null和undefined加属性和方法会报错(例外))
如:var test='abc';
test.length=2;
console.log(test.length)
test是原始值,不可能有属性和方法,但这里的test.length做了如下操作:String(test).length=2 然后马上销毁
delete String(test).length
当打印test.length时,再String(test).length。所以,此时,test.length=undefined
博客探讨了原始值添加属性和方法的问题。指出boolean、String、number原始值可加属性和方法,是因有包装类,而null和undefined加属性方法会报错。还通过示例说明原始值添加属性时的操作过程及最终结果,如test.length最终为undefined。
1269

被折叠的 条评论
为什么被折叠?



