Ich cam auf diesen Code in einem Beispiel für die EaselJS-Bibliothek - was es tut ist es weist den Namespace der gesamten createjs-Bibliothek zu "Fenster".Javascript-Namespace auf Fenster setzen: Schlechte Idee? Oder Brilliant?
<script>
var createjs = window;
</script>
Meine Frage ist: eine wirklich dumme Idee, den Namensraum einer Bibliothek Fenster Einstellung? Wird der ganze Zweck der Verwendung eines Namespace nicht einfach dadurch beseitigt, dass alle Namespace-Variablen plötzlich global definiert werden?
Der einzige Vorteil, den ich sehen kann, ist, dass Sie kürzere Konstruktoren für Ihre Objekte schreiben können. Zum Beispiel Eingabe:
stage = new Stage(canvas);
statt:
stage = new createjs.Stage(canvas);
Ist dies eine schlechte Idee, oder ist irgendwie brillant, oder einfach nur harmlos schrullig?
Es könnte Ihnen erlauben, den Umfang von createjs zu ändern. Ich habe es nie wirklich so gesehen. – Blender
Wie sonst werden Sie es entlarven, wenn es nicht global ist? –
@ user1689607 - es ist ein Namespace. Mein Verständnis ist, dass Sie es nicht als globales Objekt entlarven wollen. Deshalb existiert es. Um die Änderung einer Variablenbenennungskollision zu reduzieren. Aber ich bin mir nicht sicher: Daher die Frage. –