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 BOM,JavaScript封裝JavaScript物件封裝
- 物件導向介紹物件
- JAVA物件導向基礎--物件導向介紹Java物件
- Python 物件導向介紹Python物件
- 物件導向:封裝,多型物件封裝多型
- 物件導向之封裝(Java)物件封裝Java
- js物件導向封裝級聯下拉選單列表JS物件封裝
- 物件導向08:封裝詳解物件封裝
- 20. 物件導向之封裝物件封裝
- JavaScript 簡單介紹JavaScript
- JSON物件簡單介紹JSON物件
- 物件導向 -- 三大特性之封裝物件封裝
- 簡單介紹克隆 JavaScriptJavaScript
- java物件導向的三大特徵之封裝Java物件特徵封裝
- JavaScript 物件導向JavaScript物件
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- 再和“物件導向”談戀愛 - 物件簡介物件
- 更多物件導向的JavaScript物件JavaScript
- JavaScript 的物件導向(OO)JavaScript物件
- 簡單介紹JavaScript閉包JavaScript
- day11_物件導向(封裝丶static丶this)物件封裝
- 物件導向:簡單的我期待美好的你物件
- 『無為則無心』Python物件導向 — 53、對Python中封裝的介紹Python物件封裝
- 物件導向設計介紹和程式碼示例物件
- Python 物件導向程式設計之封裝的藝術Python物件程式設計封裝
- JavaScript物件導向—物件的建立和操作JavaScript物件
- JavaScript return語句簡單介紹JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- JavaScript常用物件介紹JavaScript物件
- JavaScript7:物件導向JavaScript物件
- 【讀】JavaScript之物件導向JavaScript物件
- JavaScript 物件導向初步理解JavaScript物件
- JavaScript物件簡介JavaScript物件
- Cris 的 Scala 筆記整理(八):物件導向中級-封裝筆記物件封裝
- javascript:物件導向的程式設計JavaScript物件程式設計