JS封裝插件案例
這次帶給大家JS封裝外掛案例,JS封裝外掛的注意事項有哪些,下面就是實戰案例,一起來看一下。
由於專案原因,工作一年多還沒用js寫過插件,專案太成熟,平常基本上都是在使用已經封裝好的功能插件。感覺自己好low......這兩天想自己抽空寫一個canvas畫統計圖與折現圖的插件,所以就去網上學習了下如何封裝.....雖然之前看了很多源碼,但是感覺就算了解也是野路子.....
# 什麼是封裝呢?
# 我的理解就是 把一個功能單獨做成一個組件,就像做餃子,以前做餃子必須自己先用麵粉做餃子皮,再做餃子餡,然後再手工包餃子,但是現在人們發明了自動包餃子機器,雖然機器裡面的每一步驟和你自己包餃子是一樣的,但是實際上你現在需要做的就只有一件事,就是放原料。這邊機器就是封裝好的插件,而原料就是你要傳遞的參數
# 為什麼要把js功能封裝成插件呢?我覺得有以下幾點吧
1、方便程式碼重複使用
2、避免各個相同功能組件的干擾,可能會有作用域的一些問題吧
# 3、便於維護,同時利於專案累積
# 4、不覺得一直複製貼上很low麼.......
我在網路上看到的封裝好像有兩種,一種是js的原生封裝,一種是jquery的封裝。這邊我先講一下原生封裝吧。
我們在封裝的時候會把js程式碼放到一個自執行函數裡面,這樣可以防止變數衝突。
(function(){ ...... ...... }()}
然後再建立一個建構子
(function(){ var demo = function(options){ ...... } }())
把這個函數暴露給外部,以便全域呼叫
(function(){ var demo = function(options){ ...... } window.demo = demo; }())
其實實作在你可以直接呼叫了,封裝好了,雖然沒實作什麼功能
var ss = new demo({ x:1, y:2 });
或
new demo({ x:2, y:3 });
然後傳參怎麼搞呢,我們一個插件一般有一些必選參數或可選參數,在我看來可選參數不過就是在插件裡面給了預設值罷了。我們傳的參數會覆寫插件中的預設參數,可以用$.extend({})覆寫
(function(){ var demo = function(options){ this.options = $.extend({ "x" : 1, "y" : 2, "z" : 3 },options) } window.demo = demo; }())
# 然後你可以在初始化建構函式的時候執行一些操作
(function(){ var demo = function(options){ this.options = $.extend({ "x" : "1", "y" : "2", "z" : "3" },options); this.init(); }; demo.prototype.init = function(){ alert("x是"+this.options.x+" y是"+this.options.y+" z是"+this.options.z); }; window.demo = demo; }()); new demo({ "x" :"5", "y" :"4" }); </script>
我這邊有個疑問,extend只是jquery有嗎,js物件有什麼代替方法嗎?晚點在看看.............
# 還有要提的是封裝js的時候我們要考慮周全,例如它的擴充性和相容性,還有效能怎麼樣,還有沒必要的就不需要封裝了......要有選擇性。
現在網路上已經完成的插件數不勝數,而且功能又十分強大,但是恰恰是這點,有的時候一個很大的插件我們只用到很小的一部分,那麼就需要我們自己修改成適合我們自己的了,而且有些項目的風格和現在的插件風格也不同,所以關鍵是要適合自己的項目。
##相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
#以上是JS封裝插件案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PyCharm是一款功能強大且受歡迎的Python整合開發環境(IDE),提供了豐富的功能和工具,讓開發者可以更有效率地編寫程式碼。而PyCharm的插件機制更是其功能擴充的利器,透過安裝不同的插件,可以為PyCharm增加各種功能和客製化的特性。因此,對於PyCharm新手來說,了解並熟練安裝插件是至關重要的。本文將為你詳細介紹PyCharm插件安裝的全
![在Illustrator中載入插件時出錯[修復]](https://img.php.cn/upload/article/000/465/014/170831522770626.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
啟動AdobeIllustrator時是否會彈出載入插件時出錯的訊息?一些Illustrator用戶在打開該應用程式時遇到了此錯誤。訊息後面緊跟著一系列有問題的插件。此錯誤提示表示已安裝的插件有問題,但也可能是由於VisualC++DLL檔案損壞或首選項檔案受損等其他原因所引起。如果遇到此錯誤,我們將在本文中指導您修復問題,請繼續閱讀以下內容。在Illustrator中載入外掛程式時出錯如果您在嘗試啟動AdobeIllustrator時收到「載入外掛程式時出錯」的錯誤訊息,您可以使用以下用途:以管理員身

用戶使用Edge瀏覽器的過程中可能會添加一些插件來滿足自己更多的使用需求。但是在添加插件時顯示不支援此插件,這該如何解決?今日小編就來給大家分享三種解決方法,快來試試看。 方法一:嘗試用其他的瀏覽器。 方法二:瀏覽器上的FlashPlayer可能過時或遺失,導致此外掛程式不受支援狀態,可在官網下載最新版本。 方法三:同時按下「Ctrl+Shift+Delete」鍵。 點選“清除資料”,重新開啟瀏覽器即可。

Chrome的插件擴充功能安裝目錄是什麼?正常情況下,Chrome外掛程式擴充功能的預設安裝目錄如下:1、windowsxp中chrome外掛程式預設安裝目錄位置:C:\DocumentsandSettings\使用者名稱\LocalSettings\ApplicationData\Google\Chrome\UserData\Default\Extensions2、windows7中chrome插件預設安裝目錄位置:C:\Users\使用者名稱\AppData\Local\Google\Chrome\User

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

PyCharm社群版支援的插件足夠嗎?需要具體程式碼範例隨著Python語言在軟體開發領域的應用越來越廣泛,PyCharm作為一款專業的Python整合開發環境(IDE),備受開發者青睞。 PyCharm分為專業版和社群版兩個版本,其中社群版是免費提供的,但其外掛程式支援相對專業版有所限制。那麼問題來了,PyCharm社群版支援的插件夠嗎?本文將透過具體的程式碼範例

EclipseSVN插件的安裝和設定方法詳解Eclipse是一個廣泛使用的整合開發環境(IDE),它支援許多不同的插件來擴展其功能。其中之一是EclipseSVN插件,它使開發人員能夠與Subversion版本控制系統進行互動。本文將詳細介紹如何安裝和設定EclipseSVN插件,並提供具體的程式碼範例。第一步:安裝EclipseSVN外掛程式開啟Eclipse

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We
