In ES6, entrambe queste sono legali:metodi negli oggetti ES6: utilizzando le funzioni di freccia
var chopper = {
owner: 'Zed',
getOwner: function() { return this.owner; }
};
e, come abbreviazione:
var chopper = {
owner: 'Zed',
getOwner() { return this.owner; }
}
E 'possibile utilizzare le nuove funzioni di direzione, nonché ? Nel cercare qualcosa di simile
var chopper = {
owner: 'John',
getOwner: => { return this.owner; }
};
o
var chopper = {
owner: 'John',
getOwner: => (this.owner)
};
ricevo un messaggio di errore che suggeriscono che il metodo non ha accesso a this
. Si tratta solo di un problema di sintassi o non è possibile utilizzare i metodi di pipe grasse all'interno degli oggetti ES6?
Uno dei maggiori punti della nuova sintassi della funzione era che tratta 'questo' in modo diverso. È definito dall'ambiente lessicale in cui è stata creata la funzione, il che significa che il valore 'this' in cui si crea la variabile' chopper' sarà il valore 'this' della funzione. In altre parole, non farà riferimento all'oggetto 'chopper'. –
capito, c'è un modo per riscrivere questa funzione in modo che si riferisca a 'owner' all'interno di chopper? – fox
Durante l'uso della sintassi della freccia grassa? Solo se modifichi il valore 'this' creando prima l'oggetto' chopper', quindi eseguendo l'assegnamento in una funzione che ha 'this' che punta a quell'oggetto. Questo può essere realizzato in modo abbastanza pulito con una funzione di costruzione. –