2017-04-26 42 views
0

「キャッチされていないTypeError:self.myTestは関数ではありません」というエラーが表示されるのはなぜですか?どのように私はjavascriptクラス内の別のメソッド内からメソッドを呼び出すのですか?同じクラスの別のメソッドからメソッドを呼び出す

class MyClass { 
 

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

 
    runMyTest() { 
 
     self.myTest(); 
 
    } 
 

 
} 
 

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

+0

JavaScriptでは 'self'ではなく' this'と呼ばれています。 – Bergi

答えて

0

かわりselfthisキーワードを使用する必要があります。あなたは

runMyTest() { 
    this.myTest(); 
} 

よう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"はありません。 「this」のみ [link](https://www.w3schools.com/js/js_reserved.asp) –

+0

*あなたが変更した理由とその理由を知っています。しかし、「これについて」知らない人は、そうではありません。あなたはOPに何か違うことを(暗黙のうちに)言っているだけですが、なぜ*理由*を説明していません。訪問者は、コードだけでなく説明も提供すれば、さらに多くのことを学ぶことができます。 –

0

しかし実装の多くは、基準を維持したいし、次の操作を行っている。その理由かもしれません

var self = this; 

使用は自己参照としてselfを考えていました。さらに読むために私はこれを示唆したいと思います。SO - post