JavaScript公有屬性、私有屬性、公有方法和原型方法

admin發表於2017-04-15

本章節對標題中的幾個概念做一下簡單的介紹,當然內容不僅僅限於標題中的概念。

下面就通過一個程式碼例項進行一下了解,下面有註釋進行說明。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function Antzone(name){
  var className = "anzone";
  this.name = name;
  this.hello = function(){
    console.log(this.name);
    console.log(this.msg());
    console.log(this.address);
    console.log(Antzone.age);
  }
}
 
Antzone.Run = function(){
  console.log("螞蟻部落:靜態方法");
}
  
Antzone.prototype.msg = function(){
  console.log("螞蟻部落:"+this.name);
}
  
Antzone.age = 3;
  
Antzone.prototype.address = "青島市南區";
 
Antzone.Run();
Antzone.prototype.msg();
console.log(Antzone.prototype.address);
 
var oantzone= new Antzone("螞蟻部落");
 
oantzone.hello();
oantzone.msg();
console.log(oantzone.age)//這個會報錯,因為靜態屬性只能夠使用類呼叫

上面的就是一個程式碼,足以說明標題中的各種概念,下面就做一下注釋。

一.程式碼註釋:

(1).function Antzone(name){},這是宣告一個函式。

(2).var className = "anzone",這就是一個私有變數,函式外部無法訪問,只能夠在內部使用。

(3).this.name = name,這是公有屬性,因為需要物件例項化後才能訪問,也可以成為物件屬性。

(4).this.hello = function(){

  console.log(this.name);//可以訪問公有屬性

  console.log(this.msg());//可以訪問公有方法。

  console.log(this.address);//可以訪問原型物件上的屬性

  console.log(Antzone.age);//也可以訪問靜態屬性,也就是執行定義在類(建構函式)上的。

},這是一個公有方法,和上面類似,也可以稱之為物件方法,需要物件例項呼叫。(5).Antzone.Run = function(){

  console.log("螞蟻部落:靜態方法");

},這是為類新增一個靜態方法,也就是無需例項化就可以直接用類名呼叫。

(6).Antzone.prototype.msg = function(){

   console.log("螞蟻部落:"+this.name);

}這是新增一個原型方法,需要物件例項呼叫。

(7).Antzone.age = 3,這也是靜態屬性。

二.相關閱讀:

(1).建構函式和普通函式的區別參閱JavaScript建構函式和普通函式的區別一章節。

(2).prototype參閱JavaScript prototype原型一章節。

相關文章