これを機能させるにはどうすればよいですか:
class TestClass {
doMethod1 (arg1, arg2, cb)
{
this.doMethod2(arg1, arg2, function (result){cb (result)});
}
doMethod2 (arg1, arg2, cb) {
this.doMethod3(arg1, arg2, function(result){cb (result)});
}
doMethod3 (arg1, arg2, cb) {
var result = arg1 + arg2;
cb(result);
}
}
テスト = 新しい TestClass;
test.doMethod3(1,1, cb); test.doMethod2(1,1,cb);
どちらも機能します。
test.doMethod1(1,1,cb);
編集:実際、それは機能します。
「太い矢印」構文を使用して、関連する字句スコープの問題を回避しました。
doMethod1 (arg1, arg2, cb)
{
this.doMethod2(arg1, arg2, (result) => {cb (result)});
}
doMethod1 の「this」が匿名コールバック関数の「this」と同じであることを確認します。