0

变量有属性吗?

显而易见的答案应该是否定的。如果我尝试将属性分配给变量,它应该会出错。对?

如果我这样做:

 var someVariable = 'Cat';
 someVariable.eyes = 'two';   //Gives no error!

alert(someVariable.eyes);     // alerts 'undefined' instead of giving an error!
4

2 回答 2

3

变量没有属性,但它们的有。(无论如何,如果该值是一个对象。)在这种情况下,您正在尝试设置eyes当前由someVariable.

但是,在这种情况下它不起作用。由于原始值没有属性,JS 会将原始字符串值转换为对象并在该对象上设置属性,这几乎会立即被静默丢弃。最终结果:原始字符串保持不变。

于 2013-05-25T04:13:52.527 回答
1

“变量”实际上并不存在(严格定义在范围内除外),只有对象。默认情况下,字符串对象不能具有任意属性。

于 2013-05-25T04:14:10.417 回答