JavaScript 面向對象的之私有成員和公開成員
更新時間:2010年05月04日 14:52:40 作者:
這節(jié)來說下JavaScript的私有成員和公開成員,雖然JavaScript沒有private和public關鍵字,但還是那句話——作為開發(fā)人員我們要有面向對象的思想!
上兩節(jié)講了 JavaScript 面向對象之命名空間 與 javascript 面向對象的JavaScript類,大家可以先看上面的再繼續(xù)往下看。
其實很簡單,廢話少說,看了下面的代碼及注釋相信你就會一目了然!
//聲明類,就是一個方法,其實在JavaScript中,命名空間、類、成員.... 一切皆對象
MyClass =function(){
var _this=this;
//私有變量
var aa="11";
//公開變量
this.bb="22";
//私有方法
function fun1(){
alert(aa);
alert(_this.bb);
}
//私有方法
var fun2=function(){
alert(aa);
alert(_this.bb);
}
//公開方法
this.fun3=function(){
alert(aa);
alert(_this.bb);
}
}
//測試如下:
var mc=new MyClass();
mc.aa="AA";//錯誤
mc.bb="BB";//正確
mc.fun1();//錯誤
mc.fun2();//錯誤
mc.fun3();//正確
一言以蔽之:在類的內部
用 var 關鍵字聲明的變量或方法是私有的;
用function 關鍵字聲明的方法是私有的;
用this關鍵字聲明的變量或方法是公開的。
以上說的都是針對于實例類而言的,而對于靜態(tài)類那就更簡單了,JavaScript靜態(tài)類其實就是一個json對象,所以的它的所有成員都是公開的,都是對外可見的!
其實很簡單,廢話少說,看了下面的代碼及注釋相信你就會一目了然!
復制代碼 代碼如下:
//聲明類,就是一個方法,其實在JavaScript中,命名空間、類、成員.... 一切皆對象
MyClass =function(){
var _this=this;
//私有變量
var aa="11";
//公開變量
this.bb="22";
//私有方法
function fun1(){
alert(aa);
alert(_this.bb);
}
//私有方法
var fun2=function(){
alert(aa);
alert(_this.bb);
}
//公開方法
this.fun3=function(){
alert(aa);
alert(_this.bb);
}
}
//測試如下:
var mc=new MyClass();
mc.aa="AA";//錯誤
mc.bb="BB";//正確
mc.fun1();//錯誤
mc.fun2();//錯誤
mc.fun3();//正確
一言以蔽之:在類的內部
用 var 關鍵字聲明的變量或方法是私有的;
用function 關鍵字聲明的方法是私有的;
用this關鍵字聲明的變量或方法是公開的。
以上說的都是針對于實例類而言的,而對于靜態(tài)類那就更簡單了,JavaScript靜態(tài)類其實就是一個json對象,所以的它的所有成員都是公開的,都是對外可見的!
您可能感興趣的文章:
- 詳解ES6 Symbol 的用途
- Javascript ES6中數(shù)據(jù)類型Symbol的使用詳解
- ES6概念 Symbol toString()方法
- ES6中Symbol類型用法實例詳解
- ES6新特性之Symbol類型用法分析
- ES6概念 Symbol.keyFor()方法
- es6 symbol的實現(xiàn)方法示例
- ES6中Symbol、Set和Map用法詳解
- ES6 Symbol數(shù)據(jù)類型的應用實例分析
- JavaScript 私有成員分析
- Javascript類定義語法,私有成員、受保護成員、靜態(tài)成員等介紹
- ES5 模擬 ES6 的 Symbol 實現(xiàn)私有成員功能示例
相關文章
javascript中類的定義及其方式(《javascript高級程序設計》學習筆記)
javascript也是一種面向對象的編程語言。但是javascript中的類相關的東西(類的定義,原型鏈,繼承等)卻不是很好理解,特別是繼承。2011-07-07
XRegExp 0.2: Now With Named Capture
XRegExp 0.2: Now With Named Capture...2007-11-11

