問題タブ [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.
javascript - ReferenceErrorとグローバルオブジェクト
JavaScriptのブラウザwindow
では、グローバルオブジェクトが使用されます。これは、グローバルスコープで定義されたすべての変数がの子であることを意味しますwindow
。では、なぜこの結果が得られるのでしょうか。
これらの2つの線は同じである必要がありますね。
javascript - グローバルプロパティ/関数がJavaScriptで上書きされているかどうかを確認します
JavaScriptを使用すると、グローバルオブジェクトのプロパティと関数を簡単に上書きできます。グローバルプロパティの元のバージョンが置き換えられているかどうかを確認する方法を見つけたいのですが。
これをHTMLに入れている人を考えてみましょう。
myscript.jsがどこかでencodeURIComponent関数を呼び出すと、予期しない動作をするようになります。それで、myscript.js内で、使用する前に誰かがその関数を上書きしたかどうかを確認する方法はありますか?
javascript - モジュールパターンのこのキーワード?
私は新しい会社で働き始めたばかりで、多くのJSで私には完全に間違っているように見える何かに気づきました。私はかなり後輩で、JSの専門家ではなく、2日目であり、愚かに見えたくないので、これが間違っていることを確認せずにそれを持ち出すのは少し躊躇しています。
したがって、通常、モジュールパターンは次のようになります。
彼らがコード全体に持っているのは:
もちろん、関数はnew
キーワードを使用したコンストラクターとしてもメソッドとしても呼び出されていないため、this
にバインドされ、としてwindow
定義that
されていますthis
。したがって、基本的にすべてをグローバルオブジェクトにダンプし、すべてのサブモジュール名は実際にはのエイリアスですwindow
。誰かがこれをしたいと思う理由はありますか?それとも、これは私が思うほど本当に間違っているのでしょうか?
編集:
サブモジュール定義の前に置くのを間違えましたvar
。元々、少し違うものを書き、を削除するのを忘れていましたvar
。私も例をもう少し明確にしようとしましたが、うまくいけば、私が今何を意味しているのかがより明確になります。
編集2:
また、Firebugで実行されているスクリプトを見てきましたが、それらは間違いなくすべてを追加してwindow
います。そのオブジェクトは完全に混乱しています。
javascript - Javascript - クローズ内で定義された関数を呼び出すのはなぜですか?
多くの js フレームワーク (jquery を含む) がメイン関数スコープの周りでクロージャを使用しているのを見てきました。例えば、
jquery ソース、 http://code.jquery.com/jquery-1.7.2.js
「関数」の周りに余分な「閉鎖」が必要なのは何ですか? または、次のように使用している場合の違いは何ですか、
どちらも同じ動作をし、関数定義自体がすべてのローカル変数を新しいスコープ内に配置します...では、なぜ余分なクロージャーが必要なのですか?