首頁 web前端 js教程 JS封裝插件案例

JS封裝插件案例

Apr 18, 2018 am 10:49 AM
javascript 外掛 案例

這次帶給大家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中文網其它相關文章!

推薦閱讀:

Vuejs怎麼操作頁面區域化

#webpack2 React使用詳解

#JQUERY透過目前標籤名稱取得屬性的值

#

以上是JS封裝插件案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

PyCharm新手指南:全面了解外掛程式安裝! PyCharm新手指南:全面了解外掛程式安裝! Feb 25, 2024 pm 11:57 PM

PyCharm是一款功能強大且受歡迎的Python整合開發環境(IDE),提供了豐富的功能和工具,讓開發者可以更有效率地編寫程式碼。而PyCharm的插件機制更是其功能擴充的利器,透過安裝不同的插件,可以為PyCharm增加各種功能和客製化的特性。因此,對於PyCharm新手來說,了解並熟練安裝插件是至關重要的。本文將為你詳細介紹PyCharm插件安裝的全

在Illustrator中載入插件時出錯[修復] 在Illustrator中載入插件時出錯[修復] Feb 19, 2024 pm 12:00 PM

啟動AdobeIllustrator時是否會彈出載入插件時出錯的訊息?一些Illustrator用戶在打開該應用程式時遇到了此錯誤。訊息後面緊跟著一系列有問題的插件。此錯誤提示表示已安裝的插件有問題,但也可能是由於VisualC++DLL檔案損壞或首選項檔案受損等其他原因所引起。如果遇到此錯誤,我們將在本文中指導您修復問題,請繼續閱讀以下內容。在Illustrator中載入外掛程式時出錯如果您在嘗試啟動AdobeIllustrator時收到「載入外掛程式時出錯」的錯誤訊息,您可以使用以下用途:以管理員身

分享Edge瀏覽器不支援此外掛程式的三種解決方法 分享Edge瀏覽器不支援此外掛程式的三種解決方法 Mar 13, 2024 pm 04:34 PM

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

Chrome的插件擴充功能安裝目錄是什麼 Chrome的插件擴充功能安裝目錄是什麼 Mar 08, 2024 am 08:55 AM

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:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

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

PyCharm社群版支援的插件足夠嗎? PyCharm社群版支援的插件足夠嗎? Feb 20, 2024 pm 04:42 PM

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

詳解如何安裝和設定EclipseSVN插件 詳解如何安裝和設定EclipseSVN插件 Jan 28, 2024 am 08:42 AM

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

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

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

See all articles