首頁 > web前端 > 前端問答 > javascript可以定義實例方法嗎

javascript可以定義實例方法嗎

青灯夜游
發布: 2021-11-22 14:03:18
原創
1812 人瀏覽過

javascript可以定義實例方法,方法:1、利用JavaScript物件原型引用prototype來實作實例方法;2、在物件實例上直接定義方法;3、透過this指標定義實例方法。

javascript可以定義實例方法嗎

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

1、利用JavaScript物件原型引用prototype來實作實例方法

var BaseClass = function() {};  
BaseClass.prototype.method1 = function(){  
      alert(' This is a instance method ');  
}  
var instance1 = new BaseClass();  
instance1.method1(); //This is a instance method
登入後複製

2、在實例上直接定義方法(物件)

var BaseClass = function() {};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' This is a instance method too ');  
}   
instance1.method1();//This is a instance method too
登入後複製

3、透過this指標定義實例方法  (變數)

var BaseClass = function() {  
 this.method1 = function(){  
   alert(' Defined by the "this" instance method');  
  }  
 };  
var instance1 = new BaseClass();  
instance1.method1();//Defined by the "this" instance method
登入後複製

那麼同時咋實例、原型引用上方和"this"上定義相同的實例方法後,實例會優先呼叫哪一個呢?

var BaseClass = function() {  
this.method1 = function(){  
       alert(' Defined by the "this" in the instance method');  
 }  
};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' Defined directly in the instance method');  
}  
BaseClass.prototype.method1 = function(){  
    alert(' Defined by the prototype instance method ');  
}  
instance1.method1();//Defined directly in the instance method
登入後複製

  *  透過執行結果追蹤測試可以看出直接撞擊實例上的變數的優先順序要高於定義在「this」上的;

  *   而定義在「this」上的高於prototype定義的變數;

 *    即直接定義在實例上的變數會覆寫定義在「this」上和prototype定義的變數,定義在「this'」上的會覆寫prototypetype定義的變數。

【推薦學習:javascript進階教學

以上是javascript可以定義實例方法嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板