javascript物件導向封裝簡單介紹
作為一個門物件導向的語言,封裝自然是一大特點之一,下面就簡單介紹一下javascript的物件封裝。
一.最原始的建立物件的方式:
使用物件直接建立一個物件,例如:
[JavaScript] 純文字檢視 複製程式碼var web={ webName:"螞蟻部落", webAddress:"青島市南區" }
這個方式建立物件自然簡單,當然如果要建立多個類似的物件的時候,就不是太方便了。
二.對上面的方式進行改進:
[JavaScript] 純文字檢視 複製程式碼function web(webName,webAddress){ return { webName:webName, webAddress:webAddress } }
以上的方式就更為便利了,例如我們建立以下兩個物件:
[JavaScript] 純文字檢視 複製程式碼var firstWeb=web("螞蟻部落","青島市南區"); var secondWeb=web("網易","北京");
上面的例子比較簡單,這樣也不能夠反映出兩個例項之間的聯絡。
三.使用建構函式:
所謂的建構函式就是普通的函式,如果使用new運算子進行呼叫,那麼它就是被用作建構函式,並且this會指向由建構函式所建立的物件例項,上面的程式碼可以改造成下面的形式:
[JavaScript] 純文字檢視 複製程式碼function web(webName,webAddress){ this.webName=webName; this.webAddress=webAddress; }
那麼建立物件例項就可以用下面的方法:
[JavaScript] 純文字檢視 複製程式碼var webObj=new web("螞蟻部落","青島市南區"); webObj.webName//螞蟻部落 webObj.webAddress//青島市南區
webObj會含有一個constructor屬性指向建構函式web:
[JavaScript] 純文字檢視 複製程式碼webObj.constructor==web//true
四.使用原型prototype:
使用建構函式方式還是有很大的問題的,如果web物件中有固定不變的屬性或者方法,那麼每使用建構函式建立一個物件例項,都會將固定不變的屬性或者方法複製一份,那麼這就造成了記憶體空間的浪費,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function web(webName,webAddress){ this.webName=webName; this.webAddress=webAddress; this.style="學習網站"; } var firstWeb=new web("螞蟻部落","青島市南區"); var secondWeb=new web("dz","北京");
上面的程式碼中,style屬性是固定的,每建立一次物件例項,都會複製一份,這樣就多佔用了記憶體空間。
下面就用物件原型來解決此問題,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function web(webName,webAddress){ this.webName=webName; this.webAddress=webAddress; } web.prototype.style="學習網站"; var firstWeb=new web("螞蟻部落","青島市南區"); var secondWeb=new web("dz","北京"); firstWeb.style//學習網站 secondWeb.style//學習網站
以上程式碼中,兩個例項都能夠獲取style屬性值,不過建立物件例項的時候,並沒有開闢新的記憶體地址儲存此屬性的內容,而是使用一個指標指向web的原型物件。
相關文章
- JavaScript物件導向之一(封裝)JavaScript物件封裝
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- 物件導向介紹物件
- JAVA物件導向基礎--物件導向介紹Java物件
- Python 物件導向介紹Python物件
- 物件導向:封裝,多型物件封裝多型
- 物件導向之封裝(Java)物件封裝Java
- js物件導向封裝級聯下拉選單列表JS物件封裝
- 物件導向08:封裝詳解物件封裝
- 20. 物件導向之封裝物件封裝
- JavaScript 簡單介紹JavaScript
- JSON物件簡單介紹JSON物件
- 物件導向 -- 三大特性之封裝物件封裝
- 簡單介紹克隆 JavaScriptJavaScript
- JavaScript 物件導向JavaScript物件
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- 再和“物件導向”談戀愛 - 物件簡介物件
- 簡單介紹JavaScript閉包JavaScript
- java物件導向的三大特徵之封裝Java物件特徵封裝
- day11_物件導向(封裝丶static丶this)物件封裝
- 物件導向設計介紹和程式碼示例物件
- JavaScript return語句簡單介紹JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- JavaScript常用物件介紹JavaScript物件
- 更多物件導向的JavaScript物件JavaScript
- JavaScript7:物件導向JavaScript物件
- 【讀】JavaScript之物件導向JavaScript物件
- JavaScript 的物件導向(OO)JavaScript物件
- JavaScript 物件導向初步理解JavaScript物件
- JavaScript物件簡介JavaScript物件
- 『無為則無心』Python物件導向 — 53、對Python中封裝的介紹Python物件封裝
- Python 物件導向程式設計之封裝的藝術Python物件程式設計封裝
- 《JavaScript物件導向精要》之六:物件模式JavaScript物件模式
- 《JavaScript物件導向精要》之三:理解物件JavaScript物件
- JavaScript物件導向—物件的建立和操作JavaScript物件
- 1.16 JavaScript7:物件導向JavaScript物件