2017-04-26 237 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

相关问题