3 回答

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