我在这里阅读堆栈溢出,这些不相等。那么区别是什么呢。
发生的事情是,在第二种情况下,值被分配为 myObj 的属性。所以如果 b='abc'; 然后 myObj.abc 现在可用。
我一直在想同样的事情,但是[]
当名字很奇怪时使用了版本。
我在这里阅读堆栈溢出,这些不相等。那么区别是什么呢。
发生的事情是,在第二种情况下,值被分配为 myObj 的属性。所以如果 b='abc'; 然后 myObj.abc 现在可用。
我一直在想同样的事情,但是[]
当名字很奇怪时使用了版本。
点表示法采用一个标识符,即属性名称。方括号表示法接受属性名称的字符串表示。
给定var a = "a";
thenmyObj.a = b
和myObj[a] = b
andmyObj["a"] = b
是等价的。
很多,结果将取决于a
var 值。但["a"]
与.a
myObj.a=b
和之间的区别在于myObj[a]=b
,在第一种情况下,您正在访问对象中调用的属性a
。在第二个中,您正在访问名称位于名为的变量a
中的属性。
另一方面,myObj.a=b
和myObj["a"]=b
将是等价的。