javascript可以定義實例方法,方法:1、利用JavaScript物件原型引用prototype來實作實例方法;2、在物件實例上直接定義方法;3、透過this指標定義實例方法。
本教學操作環境: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中文網其他相關文章!