2 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
$.fn.pluginName = function(opt){}
就是為jquery的prototype定義了函數(shù), 這樣, 任何一個(gè)jquery對(duì)象都可以使用這個(gè)成員函數(shù), 這種寫法直觀明了, 你只要知道的就是$.fn = jQuery.prototype = $.prototype
$.fn.extend, 在jquery中重新定義了extend的使用方法, 如果只有一個(gè)參數(shù), 那么就是擴(kuò)展本身, 即$.fn.extend({}), 就是用{}對(duì)象擴(kuò)展$.fn, 也就是jquery的prototype, 這樣, 和上面那個(gè)就一樣了
兩者沒(méi)有什么區(qū)別, 怎么用看自己習(xí)慣和理解
還有一種寫法就是$.extend($.fn, {}); 這個(gè)extend不是一個(gè)參數(shù), 它作用是用后面的擴(kuò)展前面的, 即用{}擴(kuò)展了$.fn, 還是一個(gè)意思
關(guān)于$(this)和this, 你關(guān)鍵還是要知道this表示的是什么, 如果this是一個(gè)dom元素, 那么$(this)是一個(gè)jquery元素, 如果this是一個(gè)jquery元素, 那么$(this)還是一個(gè)jquery元素, 雖然你用==去判斷兩者是不同的, 但是他們內(nèi)容都是一樣的, 這是我的經(jīng)驗(yàn), 我并沒(méi)有去深入看過(guò)源碼, jquery的api中似乎也沒(méi)有說(shuō)這個(gè).
關(guān)于this和$(this)還要注意一點(diǎn)$('.abc').click(function(){});中this是dom元素, $(this)是jquery元素, 而寫插件的時(shí)候, 由于是擴(kuò)展prototype, 所以this就是對(duì)象實(shí)例, 即this就是jquery對(duì)象, $(this)還是jquery對(duì)象, 他們雖然不是同一對(duì)象, 但是內(nèi)容是完全相同的
- 2 回答
- 0 關(guān)注
- 1031 瀏覽
添加回答
舉報(bào)