12 votes

Utilisation inconnue des crochets carrés pour appeler une fonction

Au milieu de cette page, je trouve le code ci-dessous.

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

Maintenant, même si je peux voir comment cela fonctionne, je n'ai jamais vu cette utilisation de crochets carrés auparavant. Ça ne semble certainement pas qu'il crée un tableau ou référence un élément d'un tableau. Est-ce courant? Si oui, quels sont quelques autres exemples?

9voto

Hans Then Points 5570

C'est un accès au dictionnaire, qui est comme un tableau, mais avec une clé au lieu d'un index numérique.

operations['+'] évaluera à la fonction plus, qui est ensuite appelée avec les arguments plus(x, y).

5voto

Sergiu Paraschiv Points 4374

Ça s'appelle la notation entre crochets. En JavaScript, vous pouvez l'utiliser pour accéder aux propriétés des objets.

2voto

Arun P Johny Points 151748

Ici, opérations est un objet où les symboles + et - font référence à deux fonctions.

opérations[opération] renverra une référence à la fonction plus où la valeur de opération est + et ensuite les () suivants invoqueront la fonction

0voto

Lobo Points 3923

opérations est un objet et lorsque vous faites opérations[property], vous obtiendrez la fonction associée. Ensuite, vous passez les opérandes x et y.

opérations['+'] est function (x,y){ return x + y } qui est plus

opérations['-'] est function (x,y){ return x - y } qui est moins

0voto

Peter Points 1

Mon livre JavaScript dit que les propriétés des objets doivent être nommées avec des noms arbitraires. Mais '+' et '-' ne sont pas des noms. De la question initiale, il découle que les propriétés des objets doivent simplement être clé, pas nommées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X