Tôi đang chạy mã dưới đây vào nodejscách thực hiện `var self = this` trong lớp es6?
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();
ném lỗi.
Làm cách nào để chúng tôi có thể thực hiện như var self = this;
như chúng tôi đã từng thực hiện trong es5
để ngăn chặn tình huống như vậy?
Bạn đang cố gắng làm gì với dòng đầu tiên của bạn this.x = 'global x'; ? –
@Roumelis Tôi đã mong đợi 'a()' sẽ chạy trong mã toàn cục và 'toString()' trả về 'this.x' để' a() 'sẽ trả về' global x' – intekhab
Bạn đang thêm x vào cửa sổ với mục đích sau đó? –