hier ist einige Code
// app.js
let foo = 3;
let bar = 35;
im Browser i tun window.foo könnte, und ich werde meine 3
nicht in einem Browser mit einer JavaScript-Engine erhalten, die richtig implementiert let
Sie nicht. let
erstellt eine globale Variable, aber nicht eine Eigenschaft auf dem globalen Objekt. Dies ist ein neues Konzept in ES2015. (So tun const
und class
.) Aber wenn Sie var
anstelle von let
verwendet hätten, ja, würde es als eine Eigenschaft des globalen Objekts (das Sie als window
zugreifen können) in einem Browser angezeigt.
Wie Modul global varibales in Node.js
Es gibt keinen eingebauten Mechanismus zuzugreifen. NodeJS führt Ihren Code innerhalb einer Modul-Scoping-Funktion aus, sodass Variablen, die Sie auf der obersten Ebene dieses Codes deklarieren, keine Globals sind und nicht automatisch zu einem zugänglichen Objekt hinzugefügt werden.
Wenn Sie sie zugänglich auf einem Objekt wollen, müssen Sie explizit ein Objekt verwenden:
let locals = { // or even `const locals = {` since you won't change the object, just its properties
foo: 3,
bar: 35
};
(In losen Modus wäre es möglich, sie dann zu locals
ohne eine explizite Referenz zu verwenden, aber ich empfehle immer den strikten Modus zu verwenden, und empfehle, diesen Mechanismus nicht zu verwenden (die viel verleumdete with
-Anweisung), selbst wenn du dich im lockeren Modus befindest. with
ist viel verleumdet und im strengen Modus deaktiviert, aus einem Grund. :-) Ich erwähne es nur der Vollständigkeit halber.)
Für echte Globals könnten Sie NodeJS global
global verwenden, aber natürlich ist es am besten, globale Variablen zu vermeiden.
http://stackoverflow.com/questions/10987444/how-to-use-global-variable-in-node-js – lastboy
Im Knoten sind dies keine globalen Variablen, sondern [lokale Modul-Einsen] (http://stackoverflow.com/q/15406062/1048572). Verwenden Sie ein Objekt, wenn Sie auf (Name der Eigenschaft) zugreifen müssen. – Bergi