JavaScript之坑了我--閉包助力OOP之模擬私有成員屬性
思維引導:(和java對比)
由於函式體內宣告的區域性變數我們是無法訪問的,這個特徵類似java中的private 成員屬性,所以我們可以將這些宣告的區域性變數看作private成員屬性。Js中閉包的特性,讓我們可以將function中的區域性變數在函式體執行完畢後保留下來(即不讓回收),如此一來就提供了思路給我們來模擬java的private成員。
程式碼設計如下:
function Person(){
var name ;
var age;
this.setName = function(p_name){ name = p_name ; };
this.getName = function(){ return age; };
this.setAge = function(p_age){ age = p_age; };
this.getAge = function(){
return age; };
}
成員屬性可見性的模擬:js中沒有static ,private,public屬性的概念,僅僅是模擬!!
模擬公有成員屬性:java中的成員變數我們可以直接這樣訪問:物件名.屬性名,類似的,js物件中,語法上也是同樣的屬性訪問方式,因此我們可以將js物件中的屬性都看作是public成員。如:
var man = {name : “luozhixiao”};
console.log( man.name );
模擬靜態屬性:java中,static屬性/函式是屬於類的,呼叫方法是:類名.屬性名 / 類名.方法名()
注意:js中無法模擬protected 成員屬性。
事到如今,js可以模擬java的OOP的大部分精髓。。。。。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1827386/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript之坑了我--閉包原理不過如此JavaScript
- JavaScript之坑了我--一張圖看盡原型及底層模擬JavaScript原型
- JavaScript之閉包JavaScript
- JavaScript之坑了我--BOM模型速知JavaScript模型
- JavaScript之坑了我--事件模型細節JavaScript事件模型
- JavaScript之坑了我--事件繫結原理JavaScript事件
- JavaScript之坑了我--定時器用法JavaScript定時器
- JavaScript之坑了我--函式細節JavaScript函式
- JavaScript深入之閉包JavaScript
- JavaScript 深入之閉包JavaScript
- JavaScript之坑了我--物件導向預熱JavaScript物件
- JavaScript之坑了我--JSON物件明析JavaScriptJSON物件
- javascript之溫習閉包JavaScript
- JavaScript碎片———函式閉包(模擬物件導向)JavaScript函式物件
- JavaScript 的私有成員JavaScript
- 進擊的 JavaScript(四) 之 閉包JavaScript
- 深入淺出JavaScript之閉包(Closure)JavaScript
- JavaScript之坑我--陣列原理探析JavaScript陣列
- javascript模擬實現私有屬性簡單介紹JavaScript
- JavaScript之坑了我--instanceof的判斷機制測試JavaScript
- 模擬資料庫之部門員工資料庫
- JavaScript專題之模擬實現newJavaScript
- JavaScript專題之模擬實現bindJavaScript
- JavaScript深入之new的模擬實現JavaScript
- JavaScript深入之bind的模擬實現JavaScript
- JavaScript 深入之new的模擬實現JavaScript
- JavaScript 深入之bind的模擬實現JavaScript
- CMake 屬性之全域性屬性
- JavaScript進階之模擬new Object()過程JavaScriptObject
- JavaScript進階之模擬new Object過程JavaScriptObject
- javascript之模擬call以及apply實現JavaScriptAPP
- 【python】物件導向之類成員(屬性)Python物件
- 前端入門19-JavaScript進階之閉包前端JavaScript
- CMake 屬性之目標屬性
- CMake 屬性之目錄屬性
- 【初窺javascript奧秘之閉包】葉大俠病都好了,求不踩了:)JavaScript
- JavaScript進階之模擬call,apply和bindJavaScriptAPP
- 周大俠啊進擊的JavaScript(四)之閉包JavaScript