Подтвердить что ты не робот

Незнакомое использование квадратных скобок при вызове функции

В середине этой страницы я нахожу код ниже.

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, '-');

Теперь, когда я могу проследить, как это работает, я никогда раньше не видел этого использования квадратных скобок. Это, конечно, не похоже на создание массива или обращение к члену массива. Это распространено? Если да, то где другие примеры?

4b9b3361

Ответ 1

Это доступ к словарю, который похож на массив, но с ключом вместо числового индекса.

operations['+'] будет оценивать функцию plus, которая затем вызывается с аргументами plus(x,y).

Ответ 2

Он назвал обозначение скобок. В JavaScript вы можете использовать его для доступа к свойствам объекта.

Ответ 3

здесь operations - это объект, где символы + и - относятся к двум функциям.

operations[operation] вернет ссылку на функцию plus, где значение operation равно +, а затем следующее () вызовет функцию

Ответ 4

operations - это объект, и когда вы делаете operations[property], вы получите связанную функцию, а затем передаете операнды как x и y.

operations['+'] function (x,y){ return x + y }, который plus

operations['-'] function (x,y){ return x - y }, который равен minus

Ответ 5

В моей книге JavaScript говорится, что свойства объекта должны быть с именем с произвольными именами. Но "+" и "-" не являются именами. Из исходного вопроса выведено, что свойства объекта просто должны быть keyed, не названы.