Javascript Do';变量';你有房子吗?
变量有属性吗 显而易见的答案应该是否定的。如果我试图将属性分配给变量,它应该会给出一个错误。对吧? 如果我这样做:Javascript Do';变量';你有房子吗?,javascript,variables,Javascript,Variables,变量有属性吗 显而易见的答案应该是否定的。如果我试图将属性分配给变量,它应该会给出一个错误。对吧? 如果我这样做: var someVariable = 'Cat'; someVariable.eyes = 'two'; //Gives no error! alert(someVariable.eyes); // alerts 'undefined' instead of giving an error! 变量没有属性,但它们的值有属性。(无论如何,如果该值是对象。) 在本例
var someVariable = 'Cat';
someVariable.eyes = 'two'; //Gives no error!
alert(someVariable.eyes); // alerts 'undefined' instead of giving an error!
变量没有属性,但它们的值有属性。(无论如何,如果该值是对象。)
在本例中,您试图设置当前由someVariable
引用的字符串的eyes
属性
不过,在这种情况下,这是行不通的。由于基元值没有属性,JS将把基元字符串值转换成一个对象,并在该对象上设置属性,该属性几乎立即被悄悄地丢弃。最终结果:原语字符串保持不变。变量没有属性,但它们的值有属性。(无论如何,如果该值是对象。)
在本例中,您试图设置当前由someVariable
引用的字符串的eyes
属性
不过,在这种情况下,这是行不通的。由于基元值没有属性,JS将把基元字符串值转换成一个对象,并在该对象上设置属性,该属性几乎立即被悄悄地丢弃。最终的结果是:原语字符串保持不变。“变量”实际上不存在(除非严格在范围定义内),只有对象。默认情况下,字符串对象不能具有指定的任意属性。“变量”实际上不存在(除非严格在范围定义内),只有对象。默认情况下,字符串对象不能指定任意属性。在
someVariable.eyes
someVariable中保存字符串,那么尝试分配给字符串对象的.eyes不是吗?在someVariable.eyes
someVariable中保存字符串,那么,这不是试图分配给字符串对象的.eyes吗?除非修改它们的原型。。除非你修改他们的原型。。