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物件繼承
- javascript物件導向程式設計概念簡單介紹JavaScript物件程式設計
- JavaScript物件導向之一(封裝)JavaScript物件封裝
- javascript物件簡單介紹JavaScript物件
- 簡單模擬javaScript物件導向JavaScript物件
- 物件導向介紹物件
- javascript建立物件簡單介紹JavaScript物件
- Javascript 物件導向程式設計(一):封裝JavaScript物件程式設計封裝
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- JAVA物件導向基礎--物件導向介紹Java物件
- 物件導向:封裝,多型物件封裝多型
- 物件導向之封裝(Java)物件封裝Java
- 對FMDB物件導向封裝物件封裝
- javascript Object型別物件簡單介紹JavaScriptObject型別物件
- Python 物件導向介紹Python物件
- js物件導向封裝級聯下拉選單列表JS物件封裝
- 複習java物件導向(封裝)Java物件封裝
- 物件導向08:封裝詳解物件封裝
- 20. 物件導向之封裝物件封裝
- javascript物件導向繼承的簡單例項JavaScript物件繼承單例
- JavaScript 簡單介紹JavaScript
- 物件導向 -- 三大特性之封裝物件封裝
- javascript遍歷物件的屬性簡單介紹JavaScript物件
- javascript訪問物件屬性方式簡單介紹JavaScript物件
- 簡單介紹克隆 JavaScriptJavaScript
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- JavaScript 物件導向JavaScript物件
- javascript對於值型別資料的物件包裝簡單介紹JavaScript型別物件
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- [.net 物件導向程式設計基礎] (11) 物件導向三大特性——封裝物件程式設計封裝
- 再和“物件導向”談戀愛 - 物件簡介物件
- js物件導向之 觀察者模式介紹JS物件模式
- JSON物件簡單介紹JSON物件
- javascript原始值和物件的主要區別簡單介紹JavaScript物件
- 簡單介紹JavaScript閉包JavaScript