[解決済み] このJavaScript/jQueryの構文はどのように動作しますか: (function( window, undefined ) { })(window)?
2022-04-26 13:26:43
質問
のボンネットを覗いたことがありますか? jQuery 1.4 のソースコードを見て、それが以下のようにカプセル化されていることに気づきました。
(function( window, undefined ) {
//All the JQuery code here
...
})(window);
の記事を読みました。 JavaScriptの名前空間 というものと、もう一つ"というものがあります。 重要な親子 だから、ここで何が起こっているのか、ある程度はわかるんです。
でも、この特殊な構文は初めて見ました。 それは何ですか?
undefined
を行うのですか?そしてなぜ
window
を通過させ、最後に再び登場させる必要があるのでしょうか?
どのように解決するのですか?
undefinedは通常の変数であり、以下のように簡単に変更することができます。
undefined = "new value";
. そこでjQueryは、本当に未定義のローカル変数 "undefined"を作成します。
window 変数は、パフォーマンス上の理由からローカルに作られています。なぜなら、JavaScript が変数を検索するとき、まず変数名を見つけるまでローカル変数を調べます。見つからなければ、次のスコープなどを経由して、グローバル変数にたどり着くまで、JavaScriptはフィルタリングを行います。そのため、window変数がローカル変数になれば、JavaScriptはより速くそれを探すことができる。 さらに詳しい情報はこちら。 JavaScriptを高速化する - ニコラス・C・ザカス
関連
-
jQueryのコピーオブジェクトの説明
-
vueの補間表現とv-textディレクティブの違いについて
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] BootstrapのモーダルウィンドウをjQueryで開くには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
Vueのフィルタの説明
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
JavaScriptのgetElementById()メソッド入門