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

WBOY
リリース: 2016-05-16 15:50:28
オリジナル
1047 人が閲覧しました

簡単に言うと

(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 として渡されるため、それは干渉されません。パラメータ。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート