2016-04-09 17 views
0

私は通常、HTML要素を制御するためにvar document = this.documentとして実行したES6を使用して文書にアクセスしようとしています(かなり重要です)。ES6 - `document`は定義されていません

ES6では、thisは定義されていません(ergo this.documentは機能しません)。documentは存在しません。

例&類似の質問は、これが問題ではないことを示唆しており、そのまま使用できます。私は痛いほど明白な何かを逃してしまったと推測しているか、それはスコープの問題です。

+0

'document'を使うだけですか? –

+0

少なくともChromeでは、 'document === this.document'がtrueです。 –

+0

@lollbirdseyいくつかのコードを投稿するこれは実際にはうまくいくように思えます –

答えて

2

これは、あなたがES5以来の周りされているstrict modeを(使用しているES6では、これが定義されていない2015年

のECMAScriptを行うには何も [...]

号を持っていません)。厳密モードでは、window || globalの代わりにthisのグローバル使用がundefinedに等しくなります。

あなたはdocument明示的に(あなたがwindow.documentを入力してブラウザで、これは、windowです)ご使用の環境のグローバル変数に言及することでアクセスすることができ、またはあなただけdocumentと入力することができます。

今後、globalは両方の環境でグローバルオブジェクトになります。

+0

乾杯。馬鹿馬鹿しいことのために多くの謝罪、私はJS(web-devではない)にほとんど晒されていません。これが未定義であることを混乱させることは、ES5バージョンでは「厳密に使用する」ことが原因であり、読まれていないか、何か... 'document'自体は動作しませんでした。解決策は 'window.document'でした。 – lollbirdsey

+0

@lollbirdseyあなたはこれを解決したものとしてマークしてください。 – Chiru

関連する問題