jQuery中(function($){})(jQuery)詳解
簡單的說
(function($){
//code
})(jQuery)
聲明了一個(gè)匿名函數(shù),也就是將jQuery對(duì)象作為參數(shù)傳給函數(shù)
給大家舉個(gè)例子
// 全局
var str = "全局字符串...";
(function () { // 第1層
(function () { // 第2層
(function () { // 第3層
(function () { // 第4層 層數(shù)越多,訪問全局越慢
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 = "內(nèi)部字符串...";
var random = Math.random;
console.time('內(nèi)部');
for (var i=0; i<1e6; i++) {
str += random().toString().substr(2, 2);
}
console.timeEnd('內(nèi)部');
})();
})()
})();
})();
運(yùn)行代碼 就可以看到效果了,比較慢,騷等片刻。
我剛剛測試發(fā)現(xiàn)一些內(nèi)存小的電腦容易直接導(dǎo)致瀏覽器崩潰、
chrome武裝到牙齒了,連字符串都緩存,看不出多大效果、
和速度應(yīng)該沒關(guān)系,我是這么認(rèn)為的。
(function($){
// code
})(jQuery)
jQuery插件眾多,你無法確定自己使用的變量或者方法名不于其他插件重名,所以需要將所有插件代碼封裝到一個(gè)匿名函數(shù)當(dāng)中;
由于插件使用了jQuery所以需要導(dǎo)入jQuery到匿名函數(shù)中,同時(shí)使用$變量引用(因?yàn)榇蠹乙呀?jīng)習(xí)慣了使用$)。當(dāng)然你在全局下也可以使用$,但是無法完成第一個(gè)條件;
封裝的代碼必須執(zhí)行,所以要執(zhí)行匿名函數(shù)同時(shí)傳入jQuery參數(shù)。
總結(jié)
其實(shí)是為了保護(hù)$符號(hào),不管外界是否引入了另外有干擾$的庫,都不會(huì)干擾匿名函數(shù)中$就是jQuery的事實(shí),因?yàn)樗亲鳛閰?shù)被傳進(jìn)去的。
相關(guān)文章
jQuery動(dòng)態(tài)修改字體大小的方法【測試可用】
這篇文章主要介紹了jQuery動(dòng)態(tài)修改字體大小的方法,涉及jQuery針對(duì)頁面元素屬性動(dòng)態(tài)操作的相關(guān)技巧,需要的朋友可以參考下2016-09-09
javascript基于jQuery的表格懸停變色/恢復(fù),表格點(diǎn)擊變色/恢復(fù),點(diǎn)擊行選Checkbox
jQuery的表格懸停變色 恢復(fù),表格點(diǎn)擊變色/恢復(fù),點(diǎn)擊行選Checkbox2008-08-08
在css加載完畢后自動(dòng)判斷頁面是否加入css或js文件
使用jquery ui中的dialog()來顯示消息框,為了使方法方便調(diào)用,便加入了自動(dòng)判斷頁面是否加入了ui.js和ui.css,具體實(shí)現(xiàn)代碼如下2014-09-09
十個(gè)迅速提升JQuery性能讓你的JQuery跑得更快
jQuery正在成為Web開發(fā)人員首選的JavaScript庫,作為Web開發(fā)者,除了要了解語言和框架的應(yīng)用技巧外如何提升語言的性能,本文提供即刻提升你的腳本性能的十個(gè)步驟 簡單的幾步讓你的JQuery跑得更快 需要的朋友可以參考下2012-12-12
jQuery插件jPaginate實(shí)現(xiàn)無刷新分頁
我改了下源碼基本可以在ie7,ie8,ie9正常顯示。以下是部分源碼。發(fā)現(xiàn)用別人的東西出了問題很難搞啊。關(guān)鍵是那個(gè)ie啊。2015-05-05

