我理解的包装对象是:如果我们声明一个原始类型并访问一些属性,那么包装对象会在内部创建,一旦操作完成,它就被丢弃。例如:
第三行将给我5,因为第二行操作是在临时对象上完成的,第三行将创建一个新的临时对象。
但是,如果我明确地创建自己的包装对象,例如:
var str1="Stack"
str1.length=10
str1.length
第三行将给我5,因为第二行操作是在临时对象上完成的,第三行将创建一个新的临时对象。
但是,如果我明确地创建自己的包装对象,例如:
var str1=new String("Stack")
str1.length=100
str1.length
为什么我得到了5呢?这里我没有使用临时包装对象,因为操作完成后它会被丢弃。我使用的是专用包装对象,那么为什么它不允许我赋值长度呢?如果不能设置长度,那么为什么Javascript允许我设置长度呢?能否有人详细解释一下。