Was Sie beschreiben, kann leicht durch Analogie mit einem einfacheren Beispiel erläutert:
// Normal variable assignment
var a, b;
a = 15;
b = 15;
console.log("a: "+a+" , b: "+b);
// Assing the same value to two variables
var c, d;
c = d = 15;
console.log("c: "+c+" , d: "+d);
// Assign the same value to two variables and make it a function
var e, f;
e = f = function(){ console.log("Hi!"); };
// Call both of the variables' functions
e(); f();
von Variablen Ab a
und b
, Sie gehen dann zu c
und d
, die die gleiche gegeben Wert. Der Vorteil hierbei ist, dass Sie zwei Variablen den gleichen Wert zuweisen können und der Ausdruck von rechts nach links ausgewertet wird, so dass die Werte der beiden Variablen getrennt zugewiesen werden. Dies bedeutet jedoch nicht, dass das Ändern eines anderen auch den anderen ändert. Schließlich, was passiert mit e
und f
. Diesen wird statt eines Wertes eine Funktion zugewiesen, so dass Sie sie dann aufrufen können, als wären sie Funktionen.
Kurzversion: Ausdruck wird von rechts nach links aufgelöst. Die Zuweisung erfolgt nach Wert, nicht nach Referenz, was bedeutet, dass die Änderung eines Wertes der Variablen die anderen nicht beeinflusst. Wenn Sie schließlich Ihren Variablen eine Funktion zuweisen, können Sie deren Namen verwenden, um die Funktion aufzurufen, die ihr Wert ist.