Questo codice ES6:Utilizzando lo stesso nome argomento come parametro predefinito in ES6
const log =() => console.log('hi');
const parent = (log = log) => log();
parent();
Transpiled a:
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();
dà l'errore:
return log();
^
TypeError: log is not a function
Il problema è questa linea:
const parent = (log = log) => log();
Poiché il nome dell'argomento è uguale al parametro predefinito.
questo funziona:
const log =() => console.log('hi');
const parent = (logNow = log) => logNow();
parent();
È questo un bug in Babel o si tratta di non ammessi nelle specifiche per sé?
sollevamento provoca questo problema. –