問題タブ [global-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
9593 参照

javascript - ReferenceErrorとグローバルオブジェクト

JavaScriptのブラウザwindowでは、グローバルオブジェクトが使用されます。これは、グローバルスコープで定義されたすべての変数がの子であることを意味しますwindow。では、なぜこの結果が得られるのでしょうか。

フィドル

これらの2つの線は同じである必要がありますね。

0 投票する
5 に答える
3961 参照

javascript - グローバルプロパティ/関数がJavaScriptで上書きされているかどうかを確認します

JavaScriptを使用すると、グローバルオブジェクトのプロパティと関数を簡単に上書きできます。グローバルプロパティの元のバージョンが置き換えられているかどうかを確認する方法を見つけたいのですが。

これをHTMLに入れている人を考えてみましょう。

myscript.jsがどこかでencodeURIComponent関数を呼び出すと、予期しない動作をするようになります。それで、myscript.js内で、使用する前に誰かがその関数を上書きしたかどうかを確認する方法はありますか?

0 投票する
2 に答える
1923 参照

javascript - モジュールパターンのこのキーワード?

私は新しい会社で働き始めたばかりで、多くのJSで私には完全に間違っているように見える何かに気づきました。私はかなり後輩で、JSの専門家ではなく、2日目であり、愚かに見えたくないので、これが間違っていることを確認せずにそれを持ち出すのは少し躊躇しています。

したがって、通常、モジュールパターンは次のようになります。

彼らがコード全体に持っているのは:

もちろん、関数はnewキーワードを使用したコンストラクターとしてもメソッドとしても呼び出されていないため、thisにバインドされ、としてwindow定義thatされていますthis。したがって、基本的にすべてをグローバルオブジェクトにダンプし、すべてのサブモジュール名は実際にはのエイリアスですwindow。誰かがこれをしたいと思う理由はありますか?それとも、これは私が思うほど本当に間違っているのでしょうか?

編集:

サブモジュール定義の前に置くのを間違えましたvar。元々、少し違うものを書き、を削除するのを忘れていましたvar。私も例をもう少し明確にしようとしましたが、うまくいけば、私が今何を意味しているのかがより明確になります。

編集2:

また、Firebugで実行されているスクリプトを見てきましたが、それらは間違いなくすべてを追加してwindowいます。そのオブジェクトは完全に混乱しています。

0 投票する
2 に答える
124 参照

javascript - Javascript - クローズ内で定義された関数を呼び出すのはなぜですか?

多くの js フレームワーク (jquery を含む) がメイン関数スコープの周りでクロージャを使用しているのを見てきました。例えば、

jquery ソース、 http://code.jquery.com/jquery-1.7.2.js

「関数」の周りに余分な「閉鎖」が必要なのは何ですか? または、次のように使用している場合の違いは何ですか、

どちらも同じ動作をし、関数定義自体がすべてのローカル変数を新しいスコープ内に配置します...では、なぜ余分なクロージャーが必要なのですか?

0 投票する
2 に答える
80 参照

javascript - どちらを検出する必要がありますか