(function ($) {
var func=function(){
};
var a=1;
})(window.jQuery);
などと書いても、func 及び a は外部と衝突を起こさない。
スコープ的なものを意識しての書き方だと思いますが、
})(window.jQuery);
ここの部分は
})(jQuery);
こういうのも見ます。上記と同じでしょうか ?
})(XXXXX);
XXXXXの引数に全然違う名前を書くというのは無しですよね ?
No.1ベストアンサー
- 回答日時:
局所的なスコープを作るための使い捨て関数ですね。
よく使う値 jQuery を短い名前 $ に短縮する意味もあるようです。
jQuery は、(たいていの場合は)グローバルスコープ上の変数名です。
単に jQuery と記載すると、局所的なスコープで上書きされていないかぎり、グローバルスコープの変数から値を取ってきます。
window は、グローバルスコープ上の変数名で、中身はグローバルオブジェクトそのものです。
window.jQuery と記載すると、window が別の値に上書きされることはないので、「必ず」グローバルスコープの変数から値を取ってきます。
必ずを強調したい場合は、変数名の頭に window. をつけましょう。
余談ではありますが、
最近では window ではなく globalThis を使う方針のようです。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
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では、$(=グローバル変数)が未定義なのでエラーが発生します。(=グローバル汚染がない)
お探しの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を実...
-
JAVAスクリプトで指定時間以降...
-
関数でy=g(x)のgとは何の略です...
-
シューティングゲームの作り方
-
idを使わずにonclickで自身の要...
-
jQueryの"return false"の役割...
-
クリックすると上に開くアコー...
-
関数の中の値を取り出したい
-
マウスをのせてながら、2秒後に...
-
同じIDで定義した要素の配列を...
-
<a>タグのテキストを取得
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
C#テキストボックスの文字を配...
-
window.openでタイトル名の指定
-
ActiveXobjectが作成できない
-
クリッカブルマップのリンク部...
-
undefinedを表示させない方法は...
-
Vb.netのグローバル変数の宣言...
-
googleスプレッドシートのApps ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数でy=g(x)のgとは何の略です...
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
jslintのエラーについて質問
-
要素名がスペースを含む場合のj...
-
javascript(jQuery)でセル内...
-
ajax反映後のjqueryが動かない
-
jQueryの :not() .not() が有効...
-
getElementByIdを使用したグロ...
-
コードをスマートにさせたい。
-
クリックすると上に開くアコー...
-
jQueryの"return false"の役割...
-
jQueryが読み込めない
-
個別では動く、javascriptのエラー
-
一つのアクションで関数を二つ...
-
jqueryの変数を関数の外に出す方法
-
R言語
-
jQuery|:not(:animated)
-
即時関数でプライベート変数的...
-
スムーズに動く アニメーション...
おすすめ情報