La nuova classe es6 consente di utilizzare la variabile di riferimento this
all'interno dei metodi.
Tuttavia, se un metodo di classe ha una funzione secondaria o un callback, che la funzione/callback non ha più accesso alla variabile di riferimento sé this
es6 classe Javascript che utilizza questa funzione all'interno di una richiamata
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
}
}
}
Esiste una soluzione a questo?
È possibile invece creare una funzione di freccia 'const aFunc =() => this.dir;' – zerkms
Utilizzare [Funzioni freccia] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/ funzioni/Arrow_functions # Lexical_this). –
"* La nuova classe es6 consente di utilizzare la variabile di riferimento automatico all'interno dei metodi. *" - uh, no, questo non ha nulla a che fare con la sintassi 'class' di ES6. La parola chiave 'this' funziona come sempre nei metodi. – Bergi