12

在这个页面的中间,我找到了下面的代码。

var plus = function(x,y){ return x + y };
var minus = function(x,y){ return x - y };

var operations = {
  '+': plus,
  '-': minus
};

var calculate = function(x, y, operation){
    return operations[operation](x, y);
}

calculate(38, 4, '+');
calculate(47, 3, '-');

现在虽然我可以追踪它是如何工作的,但我以前从未见过方括号的这种用法。它看起来肯定不像是在创建数组或引用数组的成员。这很常见吗?如果是这样,其他例子在哪里?

4

5 回答 5

9

它是一种字典访问,类似于数组,但使用键而不是数字索引。

operations['+']将对函数求值plus,然后使用参数调用该函数plus(x,y)

于 2013-09-05T15:58:22.590 回答
5

它被称为括号表示法。在 JavaScript 中,您可以使用它来访问对象属性。

于 2013-09-05T15:58:16.790 回答
2

这里operations的对象是符号+-指代两个函数。

operations[operation]将返回对plus值为operationis的函数的引用+,然后以下()将调用该函数

于 2013-09-05T15:58:42.380 回答
0

operations是一个对象,当你这样做时,operations[property]你将获得关联的函数,然后你将操作数作为 x 和 y 传递。

operations['+']function (x,y){ return x + y }哪个是plus

operations['-']function (x,y){ return x - y }哪个是minus

于 2013-09-05T15:58:26.073 回答
0

我的 JavaScript 书说对象属性需要用任意名称命名但是“+”和“-”不是名字。从最初的问题中,可以推断出对象属性只需要keyed,而不是命名。

于 2015-05-25T00:54:47.577 回答