Ringkasnya
(function($){ //code })(jQuery)
Mengisytiharkan fungsi tanpa nama, iaitu, menghantar objek jQuery sebagai parameter kepada fungsi
Beri saya contoh
// 全局 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('内部'); })(); })() })(); })();
Jalankan kod dan anda akan melihat kesannya agak perlahan, jadi sila tunggu sebentar.
Saya baru sahaja menguji dan mendapati bahawa sesetengah komputer dengan memori kecil boleh menyebabkan penyemak imbas ranap
Chrome sangat bersenjata sehingga rentetan pun dicache, tetapi ia tidak mempunyai banyak kesan
(function($){ // code })(jQuery)
Kod enkapsulasi mesti dilaksanakan, jadi fungsi tanpa nama mesti dilaksanakan dan parameter jQuery mesti dihantar masuk.
Sebenarnya, ia adalah untuk melindungi simbol $ Tidak kira sama ada dunia luar memperkenalkan perpustakaan lain yang mengganggu $, ia tidak akan mengganggu fakta bahawa $ dalam fungsi tanpa nama ialah jQuery, kerana dia diluluskan sebagai. satu parameter.