私はnodejses6クラス内で `var self = this`を実行する方法は?
this.x = 'global x';
class Point {
constructor(x) {
this.x = x;
}
toString() {
return this.x;
}
}
var obj = new Point(1);
obj.toString();// 1 as expected
var a = obj.toString;// Here I can do something like var a = obj.toString.bind(obj); to get rid of the situation. But I am curious to know how can we write `var self = this`;
a();// TypeError: Cannot read property 'x' of undefined
a();
で以下のコードを実行していますが、エラーがスローされます。
このような状況を防ぐために、es5
で行ったように、どうすればvar self = this;
のようにすることができますか?
最初の行で何をしようとしていますか?this.x = 'global x'; ? –
@Roumelis 'a()'がグローバルコードで実行され、 'toString()'が 'this.x'を返すことを期待していたので' a() 'が' global x'を返します – intekhab
それで? –