Javascript myObj.a=b与myObj[a]=b有什么区别

Javascript myObj.a=b与myObj[a]=b有什么区别,javascript,Javascript,我在这里读到关于堆栈溢出的信息,它们是不相等的。那么有什么区别呢 在第二种情况下,值被指定为myObj的属性。如果b='abc'; 然后myObj.abc现在可以使用了 我一直都在想同样的事情,但当名字很奇怪的时候,就使用了[]版本 很多情况下,结果取决于var值。但是[a]与[p]相同。点表示法采用的标识符是属性名。方括号表示法接受属性名称的字符串表示形式 给定var a=a;那么myObj.a=b和myObj[a]=b以及myObj[a]=b是等价的 myObj.a=b和myObj[a]=b

我在这里读到关于堆栈溢出的信息,它们是不相等的。那么有什么区别呢

在第二种情况下,值被指定为myObj的属性。如果b='abc'; 然后myObj.abc现在可以使用了


我一直都在想同样的事情,但当名字很奇怪的时候,就使用了[]版本

很多情况下,结果取决于var值。但是[a]与[p]相同。点表示法采用的标识符是属性名。方括号表示法接受属性名称的字符串表示形式

给定var a=a;那么myObj.a=b和myObj[a]=b以及myObj[a]=b是等价的

myObj.a=b和myObj[a]=b之间的区别在于,在第一种情况下,您正在访问对象中名为a的属性。在第二种情况下,您将访问一个名为a的变量中的属性


另一方面,myObj.a=b和myObj[a]=b是等效的。

语法,但当名称具有特殊字符时,需要使用[],而这些字符不能以点格式使用。又名参数名,带破折号、句点等。重复和感谢我想我是通过这种方式学会的,但直到现在还不必使用括号。让我知道我是否正确。方括号还用于方法/属性名称,这些名称不以如下obj这样的字符串开头。['9']={};如果我这样做,整个程序基本上崩溃了:Object.prototype[4]={};