js 特權方法簡單介紹

antzone發表於2017-04-06

本章節通過程式碼例項簡單介紹一下javascript中特權方法的相關概念。

我們們不去糾結這個概念的名稱是否規範(本人也沒有深入去研究),不過網路上確實有這樣的稱呼。

下面就進入正題做一下簡單介紹。

相關概念:

所謂的特權方法就是通過this關鍵字定義於建構函式內部的方法。

特權方法能夠在構造方法外部公開訪問(當然必須要例項化為一個物件),並且能夠訪問方法的私有成員。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var Antzone = function(webName) { 
  var _webName = webName; //私有屬性 
  //特權方法 
  this.getName = function() { 
    return _webName; 
  }; 
  this.setName = function(webName) { 
    _webName = webName; 
  }; 
}; 
var antzone = new Antzone('螞蟻部落'); 
console.log(antzone.getName());

上面的程式碼中getName()方法和setName()方法就是特權方法,它能夠訪問建構函式內部的私有成員。

特權方法與公有方法的區別與共同點:

所謂的公有方法就是使用prototype為建構函式新增的方法。

具體可以參閱javascript prototype原型一章節,這裡就不多介紹了。

共同點:

(1).都可以在建構函式外部訪問(我們們這裡特指例項化物件)。

(2).都可以訪問建構函式內部的公共成員。

不同點:

(1).特權方法每次例項化都是建立的一個副本,而公共方法則是引用的同一個方法。

(2).特權方法可以訪問建構函式的私有成員,而公共方法是不可以的。

相關文章