外掛程式中的this

2021-07-16 12:57:38 字數 1079 閱讀 7966

q:jquery外掛程式的寫法,網上查到有兩種

第一種:(function ($)

})(jquery);

第二種(function($)

})

})(jquery);

請問這兩張有什麼區別? 貌似第一種用的人多,但我看jq原始碼中是第二種

a:$.fn.pluginname = function(opt){}

就是為jquery的prototype定義了函式, 這樣, 任何乙個jquery物件都可以使用這個成員函式, 這種寫法直觀明了, 你只要知道的就是$.fn = jquery.prototype = $.prototype

$.fn.extend, 在jquery中重新定義了extend的使用方法, 如果只有乙個引數, 那麼就是擴充套件本身, 即$.fn.extend({}), 就是用{}物件擴充套件$.fn, 也就是jquery的prototype, 這樣, 和上面那個就一樣了

兩者沒有什麼區別, 怎麼用看自己習慣和理解

還有一種寫法就是$.extend($.fn, {}); 這個extend不是乙個引數, 它作用是用後面的擴充套件前面的, 即用{}擴充套件了$.fn, 還是乙個意思。

q:$(this)和this的問題

(function ($)

})(jquery);

a:

關於$(this)和this, 你關鍵還是要知道this表示的是什麼, 如果this是乙個dom元素, 那麼$(this)是乙個jquery元素, 如果this是乙個jquery元素, 那麼$(this)還是乙個jquery元素, 雖然你用==去判斷兩者是不同的, 但是他們內容都是一樣的, 這是我的經驗, 我並沒有去深入看過原始碼, jquery的api中似乎也沒有說這個.

關於this和$(this)還要注意一點$('.abc').click(function(){});中this是dom元素, $(this)是jquery元素, 而寫外掛程式的時候, 由於是擴充套件prototype, 所以this就是物件例項, 即this就是jquery物件, $(this)還是jquery物件, 他們雖然不是同一物件, 但是內容是完全相同的

jQuery中的外掛程式

目錄 0.碼仙勵志 2.為什麼需要jquery外掛程式 3.使用外掛程式的步驟 4.jquery.color.js 5.jquery.lazyload.js 6.製作jquery外掛程式 成功沒有快車道,幸福沒有高速路。所有的成功,都來自不倦的努力和奔跑 所有的幸福,都來自平凡的奮鬥和堅持 因為jq...

刪除eclipse中的外掛程式

1.到eclipse安裝目錄下的 plugins資料夾中找到需要刪除的外掛程式名稱,一般檔名中都會包含有外掛程式名,找出來刪除相關的檔案和資料夾。2.到eclipse安裝目錄下的 configuration資料夾下找到對應的檔案刪除 3.到eclipse安裝目錄下的 configuration or...

Jquery中的Cookie外掛程式

一 什麼是cookie?cookie就是儲存在瀏覽器上的內容,使用者在這次瀏覽頁面的時候向cookie中儲存文字內容,下次再訪問頁面的時候就可以取出來上次儲存的內容,這樣就可以得到上次 記憶 的內容。結論 cookie就是儲存在瀏覽器裡的一些資料。二 cookie是jquery特有的嗎?cookie...