Nichts hindert Sie daran, das oben Genannte zu tun, aber halten Sie!
Es gibt einige Fallstricke. Die Zuweisung in Javascript erfolgt von rechts nach links. Wenn Sie also schreiben:
var moveUp = moveDown = moveLeft = moveRight = mouseDown = touchDown = false;
es übersetzt effektiv zu:
var moveUp = (moveDown = (moveLeft = (moveRight = (mouseDown = (touchDown = false)))));
was effektiv übersetzt bedeutet:
var moveUp = (window.moveDown = (window.moveLeft = (window.moveRight = (window.mouseDown = (window.touchDown = false)))));
Sie haben versehentlich gerade 5 globale Variablen erstellt - etwas, von dem ich mir ziemlich sicher bin, dass Sie es nicht wollten.
Hinweis: In meinem obigen Beispiel wird davon ausgegangen, dass Sie Ihren Code im Browser ausführen window. Wenn Sie sich in einer anderen Umgebung befinden, werden diese Variablen an den globalen Kontext für diese Umgebung angehängt (dh in Node.js globalwird an den globalen Kontext für diese Umgebung angehängt).
Jetzt können Sie zuerst alle Ihre Variablen deklarieren und sie dann demselben Wert zuweisen, um das Problem zu vermeiden.
var moveUp, moveDown, moveLeft, moveRight, mouseDown, touchDown;
moveUp = moveDown = moveLeft = moveRight = mouseDown = touchDown = false;
Kurz gesagt, beide Wege würden gut funktionieren, aber der erste Weg könnte möglicherweise einige schädliche Fehler in Ihren Code einbringen. Begehen Sie nicht die Sünde, den globalen Namespace mit lokalen Variablen zu verunreinigen, wenn dies nicht unbedingt erforderlich ist.
Nebenbemerkung: Wie in den Kommentaren ausgeführt (und dies gilt nicht nur für diese Frage), sollten Sie besser wissen, ob es sich bei dem fraglichen kopierten Wert um einen primitiven Wert, sondern um ein Objekt handelt. Bei der Zuweisung von Objekten wird der Verweis auf das Objekt anstelle des eigentlichen Objekts kopiert. Alle Variablen verweisen weiterhin auf dasselbe Objekt, sodass sich jede Änderung an einer Variablen in den anderen Variablen widerspiegelt und Ihnen große Kopfschmerzen bereitet, wenn Sie die Objektwerte und nicht die Referenz kopieren möchten.