重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

jQueryを勉強しなくてはならないのですが、JavaScriptの文法で疑問があるのでお尋ねします。

以下のURLで、気になる書式があります。
http://d.hatena.ne.jp/watanata2000/20100307/1267 …

> (function($) {
> $.fn.foo = function(arg) {
> // 処理
> };
> })(jQuery);

この、最後の行の (jQuery) は何なのでしょうか?なぜこんなものが必要なのでしょうか?
functionの定義なら、中括弧だけで済むはずです。

また、次のようなサンプルもあります。
http://developer.yahoo.com/yui/examples/datatabl …

この中の「JavaScript:」の24行目。

> }();

となっています。
なんとなく予想してみると、関数を定義して、その引数を決めているようなイメージを持っているのですが、その考えが正しいかどうかが解りません。

もし解説が難しいのであれば、解説してあるドキュメントなどを教えて頂けないでしょうか。
本をおすすめ頂けたりすると、とても助かります。

宜しくお願いします。

A 回答 (1件)

簡単に。



$.fn.foo = function(arg) {
// 処理
};
})

ここまでで定義になります。これに
(jQuery)
をつけると実行するという意味になります。

つまり上記の例では
最初の行の関数「(function($) {」に
jQueryを渡していますので

jQuery.fn.foo = function(arg) {
// 処理
};
と同じです。

で、同じなのになぜ括弧をつけるのかというと、括弧をつけない場合にはグローバル変数を汚染することがあるからです。マナーみたいなものだと思ってください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!