Lớp es6 mới cho phép bạn sử dụng biến tham chiếu tự this
các phương thức bên trong.
Tuy nhiên, nếu một phương pháp lớp có một chức năng phụ hoặc gọi lại, mà chức năng/callback không còn có quyền truy cập vào biến tài liệu tham khảo tự this
es6 Lớp Javascript sử dụng điều này bên trong một cuộc gọi lại
class ClassName {
constructor(dir){
this.dir = dir;
fs.access(this.dir, fs.F_OK | fs.W_OK, this.canReadDir);//nodejs fs.access with callback
}
canReadDir(err){
this.dir;// NO ACCESS to class reference of this
}
//OR
aMethod(){
function aFunc(){
this.dir;// NO ACCESS to class reference of this
}
}
}
Có bất kỳ giải pháp này?
Bạn có thể tạo hàm mũi tên thay vì 'const aFunc =() => this.dir;' – zerkms
Sử dụng [chức năng mũi tên] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/ Hàm/Arrow_functions # Lexical_this). –
"* Lớp es6 mới cho phép bạn sử dụng biến tham chiếu tự này trong các phương thức này. *" - uh, không, điều này không liên quan gì đến cú pháp 'lớp' của ES6. Từ khóa 'this' hoạt động giống như nó luôn làm trong các phương thức. – Bergi