Was ist die "global" - Objekt in NodeJS

Ich habe gerade gesehen, das es ein komisches Verhalten von der this Schlüsselwort in NodeJS Umgebung. Ich bin Inserat Sie mit code. Ich habe die Ausführung dieses codes mit NodeJS v6.x mit einer einzigen JavaScript Datei.

Während des Tests mit einer Zeile code wie folgt, egal ob mit oder ohne 'use strict' Anweisung, weist dies auf ein leeres Objekt {}.

console.log(this)

Aber, wenn ich die Ausführung der Anweisung innerhalb einer selbst ausgeführten Funktion wie,

(function(){
  console.log(this);
}());

Es ist drucken eine wirklich große Objekt. Mir scheint, die Globalen execution context-Objekt erstellt, indem NodeJS Umgebung.

Und während der Ausführung der oben genannten Funktion mit einem 'use strict' Anweisung, wie erwartet, es ist Druck undefined

(function(){
  'use strict';

  console.log(this);
}());

Aber, während der Arbeit mit browser (getestet hab ich nur mit Chrome), die ersten drei Beispiele liefern die window Objekt und die Letzte gab undefined als erwartet.

Das Verhalten der browser ist durchaus verständlich. Aber im Fall von NodeJS ist, tut es nicht schaffen den Kontext für die Ausführung, bis ich bin das einwickeln innerhalb einer Funktion?

So, die meisten der code in NodeJS läuft mit einem leeren globalen object?

InformationsquelleAutor Arnab Das | 2017-04-26
Schreibe einen Kommentar