Dieser ES6 Code:Mit demselben Argument Namen als Standard-Parameter in ES6
const log =() => console.log('hi');
const parent = (log = log) => log();
parent();
Transpiled zu:
var log = function log() {
return console.log('hi');
};
var parent = function parent() {
var log = arguments.length <= 0 || arguments[0] === undefined ? log : arguments[0];
return log();
};
parent();
gibt Fehler:
return log();
^
TypeError: log is not a function
Das Problem ist diese Linie:
const parent = (log = log) => log();
Da der Argumentname identisch mit dem Standardparameter ist.
Dies funktioniert:
const log =() => console.log('hi');
const parent = (logNow = log) => logNow();
parent();
Ist das ein Fehler in Babel oder ist diese nicht in der Spezifikation selbst erlaubt?
Hissen dieses Problem verursacht. –