2017-04-26 282 views
0

爲什麼會出現錯誤:「Uncaught TypeError:self.myTest不是函數」?如何在JavaScript類的另一個方法中調用方法?從同一類中的另一種方法調用方法

class MyClass { 
 

 
    myTest() { 
 
     console.log('it works'); 
 
    } 
 

 
    runMyTest() { 
 
     self.myTest(); 
 
    } 
 

 
} 
 

 
var myClass = new MyClass(); 
 
myClass.runMyTest();

+0

它被稱爲'this'在JavaScript中,而不是'self'。 – Bergi

回答

0

您需要使用this關鍵字,而不是self

runMyTest() { 
    this.myTest(); 
} 
0

class MyClass { 
 

 
    myTest() { 
 
     console.log('it works'); 
 
    } 
 

 
    runMyTest() { 
 
     this.myTest(); 
 
    } 
 

 
} 
 

 
var myClass = new MyClass(); 
 
myClass.runMyTest();

+0

如果你解釋你的解決方案,你的答案會更有用。 –

+0

JavaScript中沒有關鍵字「self」。只有「這個」 [鏈接](https://www.w3schools.com/js/js_reserved.asp) –

+0

*我*知道你改變了什麼,爲什麼。但是不瞭解'this'的人不會。你只是告訴OP做了一些不同的事情(隱式事件),但沒有解釋爲什麼*。如果您還提供解釋,而不僅僅是代碼,那麼訪問者將會學到更多。 –

0

您需要使用thisself

runMyTest() { 
    this.myTest(); 
} 

但是很多實現的喜歡養參考,並執行以下操作:

var self = this; 

這可能是原因使用時會想到self作爲自我參考。爲進一步閱讀,我建議這SO - post

相關問題