Mi sembra che, in ES6, le seguenti due funzioni sono molto quasi identica:Quali sono le differenze (se presenti) tra le funzioni freccia ES6 e le funzioni associate a Function.prototype.bind?
function() {
return this;
}.bind(this);
() => {
return this;
};
Il risultato finale sembra lo stesso: funzioni freccia producono un oggetto funzione JavaScript con il loro this
contesto legato alla lo stesso valore di this
dove sono stati creati.
Ovviamente, in senso generale, Function.prototype.bind
è più flessibile rispetto funzioni freccia: si può legare a valori diversi dal locale this
, e può impegnare qualsiasi this
in qualsiasi punto nel tempo funzione, potenzialmente molto tempo dopo che si crea inizialmente . Tuttavia, non sto chiedendo come lo stesso bind
sia diverso dalle funzioni di freccia, sto chiedendo come le funzioni di freccia differiscono da immediatamente chiamando bind
con this
.
Esistono differenze tra i due costrutti in ES6?
Con 'bind' si stanno essenzialmente creando due funzioni. Oltre a ciò, le cose che hai citato e il fatto che le funzioni delle frecce hanno una sintassi più concisa, non c'è differenza. –
Poiché questa domanda non viene cercata e le sue risposte non offrono le occasioni in cui si potrebbe avere una buona ragione per usare 'bind' su una funzione a freccia, ho fatto una nuova domanda su quando farlo: https: // runkit. com/embed/yhv29j5sybvn – hippietrail