Jetez un coup d'œil à la méthode "data" de la classe suivante. Le corps de la méthode contient une variable appelée "result" et est réaffectée dans la clause else if à un tableau.Un trait de soulignement inattendu avec le terrain de jeu de babel
Pour certaines raisons, babel transpile la variable précitée avec un trait de soulignement.
ES6 Classe:
class Serie {
constructor(name, data = []) {
Object.defineProperty(this, "name", {
enumerable: false,
configurable: false,
writable: false,
value: name
})
data.map((v, i) => this[v.name] = v.value);
}
data(name) {
let result = null;
if (arguments.length == 1) {
result = this.hasOwnProperty(name) ? this[ name ] : result;
}
else if (arguments.length == 0) {
let keys = Object.keys(this),
i = keys.length,
result = [];
while (i--) {
result.push(this[ keys[i] ]);
}
}
return result;
}
// ...
}
La méthode transpiled:
function data(name) {
var result = null;
if (arguments.length == 1) {
result = this.hasOwnProperty(name) ? this[name] : result;
} else if (arguments.length == 0) {
var keys = Object.keys(this),
i = keys.length,
_result = [];
while (i--) {
_result.push(this[keys[i]]);
}
}
return result;
}
Oh merde! J'ai totalement raté ça. Je vous remercie. –