Heim > Web-Frontend > js-Tutorial > jQuery中(function($){})(jQuery)详解_jquery

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

WBOY
Freigeben: 2016-05-16 15:50:28
Original
1069 Leute haben es durchsucht

Einfach gesagt

(function($){
 //code
})(jQuery)
Nach dem Login kopieren

Deklariert eine anonyme Funktion, d. h. übergibt das jQuery-Objekt als Parameter an die Funktion

Geben Sie mir ein Beispiel

// 全局
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('内部');
      })();
    })()
  })();
})();

Nach dem Login kopieren

Führen Sie den Code aus und Sie werden den Effekt sehen. Er ist relativ langsam, also warten Sie bitte eine Weile.
Ich habe gerade getestet und festgestellt, dass es bei einigen Computern mit kleinem Speicher leicht zum Absturz des Browsers kommen kann
Chrome ist so bewaffnet, dass sogar Zeichenfolgen zwischengespeichert werden, aber es hat keine große Auswirkung

Das hat meiner Meinung nach nichts mit der Geschwindigkeit zu tun.

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

Nach dem Login kopieren

Es gibt viele jQuery-Plug-Ins und Sie können nicht sicher sein, dass der von Ihnen verwendete Variablen- oder Methodenname nicht denselben Namen wie andere Plug-Ins hat. Daher müssen Sie alle Plug-In-Codes in einer anonymen Funktion kapseln ;

Da das Plug-in jQuery verwendet, müssen Sie jQuery in die anonyme Funktion importieren und die Variablenreferenz $ verwenden (da jeder an die Verwendung von $ gewöhnt ist). Natürlich können Sie $ auch global verwenden, aber die erste Bedingung kann nicht erfüllt werden; Der gekapselte Code muss ausgeführt werden, daher muss die anonyme Funktion ausgeführt und jQuery-Parameter übergeben werden.

Zusammenfassung

Tatsächlich dient es dem Schutz des $-Symbols. Unabhängig davon, ob die Außenwelt eine andere Bibliothek einführt, die $ stört, wird die Tatsache, dass $ in der anonymen Funktion jQuery ist, nicht beeinträchtigt, da es als übergeben wird ein Parameter.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage