我想理解为什么允许在字符串或其他原语上分配属性,即使javascript从不存储该值。我知道“xyz”与Object(“xyz”)不同,但是看看这里
var o = "xyz";
o.value = "foo bar";
alert(o.value); // alerts "undefined"
value属性在分配后立即保持未定义状态。 当o是一个对象时,value属性被正确分配并在alert语句中返回。 当o未定义时,分配属性会导致TypeError。 但是当o是一个字符串时,根本没有任何事情发生,分配就被忽略了。 好吧,在我的例子中,o是一个变量,而且“xyz”.value =“foo bar”是完全合法的吗?
答案 0 :(得分:4)
字符串不是对象。这样:
o.value = "foo bar";
表示: