最贊回答 / heym
jquery尋找參數(shù)是通過作用域鏈實現(xiàn)的,所以當(dāng)傳入underfined的時候,就不用一層層向上尋找underfined了,效率有所提高,另一點,因為瀏覽器的種類和版本的不同可以對underfined進行賦值,(尤其是IE瀏覽器,版本的不同對于underfined的賦值后,顯示underfined有所不同),所以為了體現(xiàn)underfined的本意,防止underfined被人為的賦值,所以jquer自調(diào)用函數(shù)把underfined參數(shù)傳入,防止誤賦值
2015-11-21
最贊回答 / 善始者實凡
arguments[i][name]表示的是 函數(shù)參數(shù)的屬性,對象屬性調(diào)用使用超過1次就需要用變量替代。因為使用對象屬性很耗性能。
2015-11-20
options = arguments[i],copy = options[name];這兩步貌似都是多余的直接操作后者就可以了吧?
2015-11-20
為什么要用jQuery.fn這個所謂的命名空間,jQuery里又沒有多個命名空間,這個在這里有畫蛇添足的作用,直接去掉多好??????
2015-11-20
return new ajQuery.fn.init( selector );為什么一定要有ajQuery.fn這個命名空間,直接換成ajQuery.prototype不一樣的嗎?高出這么多對象干什么
2015-11-20
最新回答 / hnull
你好,我當(dāng)時也是對這個感到疑惑,這邊說下我的理解,fn就是prototype的別名,簡稱, 之所以要這么做,其實就是prototype作為一個關(guān)鍵字是沒辦法被壓縮的,所以好處就是fn可以減少代碼量,jq庫里面有很多地方都是 $.fn.extend(...),其實是完全等價于$.prototype.extend(...), 所以主要應(yīng)該就只有減少代碼量而已。
2015-11-20
$("#test1").click(function(){
//直接處理
var foo = $('ul.first');
foo.find('.foo').css('background-color', 'red')
foo.find('.bar').css('background-color', 'green');
})
//直接處理
var foo = $('ul.first');
foo.find('.foo').css('background-color', 'red')
foo.find('.bar').css('background-color', 'green');
})
2015-11-19