Dato un file di input comePerché babel riscrive la chiamata della funzione importata su (0, fn) (...)?
import { a } from 'b';
function x() {
a()
}
babel compilerà a
'use strict';
var _b = require('b');
function x() {
(0, _b.a)();
}
ma quando compilato in modalità sciolto la chiamata di funzione viene emesso come _b.a();
Ho fatto qualche ricerca in dove viene aggiunto l'operatore virgola nella speranza c'era un commento che lo spiegava. Il codice responsabile per l'aggiunta è here.
Avrebbero dovuto fare '_b.a.call()' per rendere chiara l'intenzione. – Bergi
@Bergi Sono sicuro che il motivo per cui (0,) è di risparmiare spazio nel codice transpiled. – Andy
vedere anche [L'operatore virgola influenza il contesto di esecuzione in Javascript?] (Http://stackoverflow.com/q/36076794/1048572) – Bergi