国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery中(function($){})(jQuery)詳解

2019-11-20 12:02:57
字體:
來源:轉載
供稿:網友

簡單的說

(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的事實,因為他是作為參數被傳進去的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 措美县| 长春市| 沁源县| 武山县| 西昌市| 通海县| 雅江县| 屯留县| 婺源县| 河源市| 华蓥市| 会理县| 三门县| 泾阳县| 监利县| 双鸭山市| 唐海县| 阿巴嘎旗| 镇赉县| 乃东县| 温泉县| 盱眙县| 连州市| 托克托县| 澄江县| 桃源县| 祥云县| 安康市| 潞西市| 河池市| 定远县| 建始县| 平度市| 满城县| 兖州市| 科技| 文水县| 吉木萨尔县| 贡觉县| 长宁县| 灵山县|