javascript物件導向的封裝簡單介紹
雖然是一門基於物件的語言,雖然基本可以說任何東西都是物件,但是它又不是c#或者java那樣典型的物件導向的語言,在當前的ES版本中,還沒有類(class)這個概念,當然後續的版本可能會新增。
下面就介紹一下在javascript中如何將屬性和方法封裝成一個物件,需要的朋友可以做一下參考。
一.建立物件最為原始的方式:
假定把網站看成一個物件,那麼它具有的基本屬性就是網站名稱和網址。
程式碼演示如下:
[JavaScript] 純文字檢視 複製程式碼var Web = { webName : "", url : "" }
下面就根據上面的物件結構建立兩個例項物件,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var antzone={}; antzone.webName="螞蟻部落"; antzone.url="softwhy.com"; var sina={}; sina.webName="新浪"; sina.url="sina.com";
上面建立了兩個網站的物件例項,非常的簡單,但是有個缺陷,就是兩個物件之間沒有任何的聯絡,如果要建立多個物件,那麼在程式碼量上將是一個麻煩,當然理解上非常的簡單。
二.對上面建立方式的改進:
下面我們建立一個函式,可以有效的減少程式碼量,提高效率。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼function Web(webName,url){ return { webName:webName, url:url } }
通過上面的函式,建立物件就可以簡單很多了,程式碼如此下:
[JavaScript] 純文字檢視 複製程式碼var antzone=Web("螞蟻部落","softwhy.com"); var sina=Web("新浪","sina.com");
上面的方式雖然簡單了,但是兩個物件之間其實仍然沒有任何聯絡。
三.使用建構函式建立:
javascript中,建構函式就是一個普通函式,只是使用方式不同而已。
關於建構函式的更多內容可以參閱javascript建構函式簡單介一章節。
這個時候兩個物件已經產生某種內在的聯絡,比如constructor屬性都會指向建構函式Web。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼function Web(webName,url){ this.webName=webName; this.url=url; } var antzone=new Web("螞蟻部落","softwhy.com"); var sina=new Web("新浪","sina.com"); console.log(antzone.constructor==Web); console.log(sina.constructor==Web);
關於constructor屬性可以參閱javascript constructor一章節。
當然還有其他存在內在聯絡的屬性,這裡就不一一列舉了。
四.完善建構函式方式:
上面的建構函式方式還是存在著一定的問題,比如我們再網站新增幾個屬性的話,那麼程式碼就會變成如下:
[JavaScript] 純文字檢視 複製程式碼function Web(webName,url){ this.webName=webName; this.url=url; this.target="使用者訪問"; }
上面又增加了一個網站共同的屬性,每次建立例項物件,都會開闢一個空間來儲存這個共同的屬性,對於效率和記憶體都是一種消耗,那麼使用prototype原型就可以解決此問題,程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼function Web(webName,url){ this.webName=webName; this.url=url; } Web.prototype.target="使用者訪問"; var antzone=new Web("螞蟻部落","softwhy.com"); var sina=new Web("新浪","sina.com"); console.log(antzone.target); console.log(sina.target);
關於prototype的更多內容可以參閱javascript prototype原型一章節。
相關文章
- javascript物件導向封裝簡單介紹JavaScript物件封裝
- javascript物件導向程式設計關於封裝簡單介紹JavaScript物件程式設計封裝
- javascript物件導向繼承簡單介紹JavaScript物件繼承
- javascript物件導向程式設計概念簡單介紹JavaScript物件程式設計
- JavaScript物件導向之一(封裝)JavaScript物件封裝
- javascript物件簡單介紹JavaScript物件
- 簡單模擬javaScript物件導向JavaScript物件
- 物件導向介紹物件
- javascript建立物件簡單介紹JavaScript物件
- Javascript 物件導向程式設計(一):封裝JavaScript物件程式設計封裝
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- JAVA物件導向基礎--物件導向介紹Java物件
- javascript物件導向繼承的簡單例項JavaScript物件繼承單例
- 物件導向:封裝,多型物件封裝多型
- 物件導向之封裝(Java)物件封裝Java
- 對FMDB物件導向封裝物件封裝
- javascript Object型別物件簡單介紹JavaScriptObject型別物件
- Python 物件導向介紹Python物件
- javascript遍歷物件的屬性簡單介紹JavaScript物件
- js物件導向封裝級聯下拉選單列表JS物件封裝
- 複習java物件導向(封裝)Java物件封裝
- 物件導向08:封裝詳解物件封裝
- 20. 物件導向之封裝物件封裝
- JavaScript 簡單介紹JavaScript
- javascript對於值型別資料的物件包裝簡單介紹JavaScript型別物件
- 物件導向 -- 三大特性之封裝物件封裝
- javascript訪問物件屬性方式簡單介紹JavaScript物件
- javascript的this用法簡單介紹JavaScript
- JavaScript的物件導向JavaScript物件
- java物件導向的三大特徵之封裝Java物件特徵封裝
- javascript原始值和物件的主要區別簡單介紹JavaScript物件
- 簡單介紹克隆 JavaScriptJavaScript
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- JavaScript 物件導向JavaScript物件
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- [.net 物件導向程式設計基礎] (11) 物件導向三大特性——封裝物件程式設計封裝
- 再和“物件導向”談戀愛 - 物件簡介物件