0

长话短说,在阅读 John Resig 的博客(特别是http://ejohn.org/blog/javascript-trie-performance-analysis/)时,我遇到了一条对我来说绝对没有意义的线。基本上它归结为

object = object[key] = something;

(这可以在我链接的文章的第一个代码块中找到。)

事实证明这对谷歌来说相当困难,所以如果有人可以提供一些见解/一个很好的在线资源供我自己学习,我将非常感激。

为了阐明一个点,多重赋值中的对象是相同的,即。

A = A[key] = something;

也许我的问题应该是,这样做有什么意义?

4

4 回答 4

0

该行将某些内容分配给 object[key] 和 object。你可以这样读:

object[key] = something;
object = object[key];
于 2012-09-24T09:36:39.057 回答
0

它被称为括号表示法

JavaScript 对象的属性也可以使用方括号表示法访问或设置。对象有时称为关联数组,因为每个属性都与可用于访问它的字符串值相关联。因此,例如,您可以按如下方式访问 myCar 对象的属性:

myCar["make"] = "Ford";
myCar["model"] = "Mustang";
myCar["year"] = 1969;

更新啊,我错过了两个平等。- 另一个答案中提到的多重分配

注意:您不太可能想要

object=object[somekey]=something

因为它会覆盖你刚刚在中间使用的对象,而是

objectA=objectB[somekey]=something

其中 objectA与 objectB [somekey] 的类型相同

于 2012-09-24T09:36:43.147 回答
0

这称为多重赋值。

让我们举个例子:

a = b = 5;

在这条指令之后,a 和 b的值都是5

就像这样做:

a = 5;
b = 5;
于 2012-09-24T09:37:17.000 回答
0

它是多重赋值和括号表示法的组合。

你也可以这样读:

// Key is a string value!
var key = 'foobar';
object[key] = something;    
object = something;


// Or, if key is known
object.foobar = something;
object = something;
于 2012-09-24T09:41:54.020 回答