ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery中(function($){})(jQuery)详解_jquery

jQuery中(function($){})(jQuery)详解_jquery

WBOY
WBOYオリジナル
2016-05-16 15:50:281040ブラウズ

簡単に言うと

(function($){
 //code
})(jQuery)

匿名関数を宣言します。つまり、jQuery オブジェクトをパラメータとして関数に渡します

例を挙げてください

// 全局
var str = "全局字符串...";
(function () { // 第1层
  (function () { // 第2层
    (function () { // 第3层
      (function () { // 第4层 层数越多,访问全局越慢
        console.time('全局');
        for (var i=0; i<1e6; i++) {
          str += Math.random().toString().substr(2, 2);
        }
        console.timeEnd('全局');
      })();
    })();
  })();
})();
 
// 局部
(function () { // 第1层
  (function () { // 第2层
    (function () { // 第3层
      (function () { // 第4层
        var str = "内部字符串...";
        var random = Math.random;
        console.time('内部');
        for (var i=0; i<1e6; i++) {
          str += random().toString().substr(2, 2);
        }
        console.timeEnd('内部');
      })();
    })()
  })();
})();

コードを実行すると効果がわかりますが、比較的遅いのでしばらくお待ちください。
テストしたところ、メモリが少ない一部のコンピューターではブラウザが簡単にクラッシュする可能性があることがわかりました
。 Chrome は文字列もキャッシュするほど強力ですが、あまり効果はありません

スピードとは関係ない、私はそう思います。

(function($){
// code
})(jQuery)

jQuery プラグインは多数あり、使用する変数またはメソッド名が他のプラグインと同じ名前でないことを確認できないため、すべてのプラグイン コードを匿名関数にカプセル化する必要があります。 ;

プラグインは jQuery を使用するため、jQuery を匿名関数にインポートし、$ 変数参照を使用する必要があります ($ の使用には誰もが慣れているため)。もちろん $ をグローバルに使用することもできますが、最初の条件は満たされません。 カプセル化されたコードを実行する必要があるため、匿名関数を実行し、jQuery パラメーターを渡す必要があります。

概要

実際、これは $ シンボルを保護するためのものであり、外部の世界が $ に干渉する別のライブラリを導入しても、匿名関数内の $ が jQuery として渡されるため、それは干渉されません。パラメータ。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。