2016-04-09 11 views
0

Der Versuch, mit ES6 auf das Dokument zuzugreifen, was ich normalerweise als var document = this.document getan habe, um HTML-Elemente zu steuern (d. H. Ziemlich wichtig).ES6 - `Dokument` ist undefiniert

In ES6, this ist nicht definiert (ergo this.document nicht funktioniert), und document existiert nicht.

Beispiele & ähnliche Fragen scheinen darauf hinzuweisen, dass dies kein Problem ist und es funktioniert out of the box. Ich gehe davon aus, dass ich etwas sehr offensichtlich übersehen habe oder dass es sich um ein Scoping-Problem handelt.

+0

Verwenden Sie einfach "Dokument"? –

+0

In Chrome zumindest ist 'document === this.document' wahr. –

+0

@lollbirdsey poste irgendeinen Code, der wirklich scheint, wie es funktionieren sollte –

Antwort

2

Dies hat nichts mit EcmaScript 2015.

In ES6 zu tun, das nicht definiert ist [...]

Nein, Sie verwenden strict mode (die seit ES5 gewesen ist). Der strikte Modus macht die globale Verwendung von this gleich undefined statt window || global.

Sie können auf document entweder von Ihrer Umgebung globale Variable explizit zu erwähnen (in Browsern, ist dies window, so dass Sie window.document geben würde), oder Sie könnten nur document eingeben. Als Randnotiz: global wird in beiden Umgebungen das globale Objekt sein.

+0

Prost. Viele Entschuldigungen für die Idiotie, ich habe sehr wenig Kontakt zu JS (kein Web-Entwickler). Verwirrung darüber, dass dies nicht definiert ist, stammt von "use strict" in der ES5-Version, die nicht gelesen wird oder etwas ... "document" funktionierte nicht von selbst. Lösung war 'window.document'. – lollbirdsey

+0

@lollbirdsey Würdest du das bitte als gelöst markieren? – Chiru

Verwandte Themen