(function ($) {
var func=function(){
};
var a=1;
})(window.jQuery);
などと書いても、func 及び a は外部と衝突を起こさない。
スコープ的なものを意識しての書き方だと思いますが、
})(window.jQuery);
ここの部分は
})(jQuery);
こういうのも見ます。上記と同じでしょうか ?
})(XXXXX);
XXXXXの引数に全然違う名前を書くというのは無しですよね ?
No.2
- 回答日時:
こんにちは
既に回答は出ていますけれど・・・
>func 及び a は外部と衝突を起こさない。
>スコープ的なものを意識しての書き方だと思いますが、
ご指摘の通りですが、それ以前に、
>(function ($) {
~~
>})(window.jQuery);
は、変数$を局所的にwindow.jQueryとして利用する意味が強いと思います。
通常、何もせずにjQueryを読み込むと、グローバル変数の$はjQueryの意味を持ちますが、変数$が他のライブラリ等とコンフリクトするような場合でも、上記構文の場合は、スコープ内で安全に$=jQueryとして利用できます。
グローバル変数としては使えない場合でも、一般的な$を用いた記述をそのまま利用できるということもあると思います。
※ jQueryで$を開放する例
https://api.jquery.com/jQuery.noConflict/
>XXXXXの引数に全然違う名前を書くというのは無しですよね ?
書くことは可能です。
ただし、その値が仮引数の$の意味になりますので、当然ながら、その後の記述は整合している必要があります。
例えば、
(function($){
alert( $ );
})(new Date);
alert( $ ); //エラー発生
とすれば、即時関数で日付がalert表示されます。
二番目のalertでは、$(=グローバル変数)が未定義なのでエラーが発生します。(=グローバル汚染がない)
No.1ベストアンサー
- 回答日時:
局所的なスコープを作るための使い捨て関数ですね。
よく使う値 jQuery を短い名前 $ に短縮する意味もあるようです。
jQuery は、(たいていの場合は)グローバルスコープ上の変数名です。
単に jQuery と記載すると、局所的なスコープで上書きされていないかぎり、グローバルスコープの変数から値を取ってきます。
window は、グローバルスコープ上の変数名で、中身はグローバルオブジェクトそのものです。
window.jQuery と記載すると、window が別の値に上書きされることはないので、「必ず」グローバルスコープの変数から値を取ってきます。
必ずを強調したい場合は、変数名の頭に window. をつけましょう。
余談ではありますが、
最近では window ではなく globalThis を使う方針のようです。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- JavaScript JavaScriptの即時関数の書き方 1 2022/11/29 09:52
- JavaScript JavaScript?jQuery?で書き方を教えてください。 初心者です。 AAAという要素をステ 2 2023/08/04 22:09
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
functionから別のfunctionを実...
-
クリックすると上に開くアコー...
-
jqueryの変数を関数の外に出す方法
-
関数でy=g(x)のgとは何の略です...
-
jQueryでのレスポンシブが綺麗...
-
関数名をテキストから読み込む...
-
JavaScript window.openで開く...
-
同じIDで定義した要素の配列を...
-
javascriptでiframeのURL変更は?
-
ボタンをクリックすると数が増...
-
jspからjavascriptの変数引継ぎ
-
C#で、ContextMenuStripに動的...
-
画像上のクリックした場所が分...
-
undefinedを表示させない方法は...
-
webページ上のTabキーの動き
-
var_dumpのdump意味はを知りた...
-
hoge の謎
-
Boolean型配列中のTrueの有無を...
-
Inherits EventArgsの初期化
-
配列の初期化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
jQueryの :not() .not() が有効...
-
クリックすると上に開くアコー...
-
JAVAスクリプトで指定時間以降...
-
関数の中の値を取り出したい
-
javascript(jQuery)でセル内...
-
ページ内に複数表がある場合のT...
-
XMLHttpRequestでキャッシュを...
-
jQuery|要素だけを変更できま...
-
jQueryでzipを解凍読み込みする...
-
jslintのエラーについて質問
-
画像がフェードイン・アウトす...
-
変数のスコープの問題?
-
【javascript 】addEventListen...
-
チェックBOX入力後、ある時間に...
-
roundupについて教えてください。
-
[jQuery] クリックで連番関数を...
-
Matlabで自作関数をオーバーロード
おすすめ情報

