eine Eingabedatei wieWarum schreibt Babel den importierten Funktionsaufruf auf (0, fn) (...) um?
import { a } from 'b';
function x() {
a()
}
babel es
'use strict';
var _b = require('b');
function x() {
(0, _b.a)();
}
zu
aber wenn in losen Modus der Funktionsaufruf ausgegeben_b.a();
als kompilierte kompiliert Da ich einige der Forschung in getan habe wo der Komma-Operator hinzugefügt wird in der Hoffnung, dass es einen Kommentar gab, der es erklärte. Der für das Hinzufügen verantwortliche Code ist here.
Sie sollten '_b.a.call()' gemacht haben, um die Absicht klar zu machen. – Bergi
@Bergi Ich bin sicher, der Grund, warum sie es mit (0,) ist, ist Speicherplatz im transpiled Code zu sparen. – Andy
siehe auch [Beeinflusst der Komma-Operator den Ausführungskontext in Javascript?] (Http://stackoverflow.com/q/36076794/1048572) – Bergi