Babel не транслирует имена вычисленных объектов ES6. Он компилирует все остальное, хотя. Не уверен, что происходит. Использование последней версии cli.Babel не транслирует имена вычисленных наименований ES6
var name = "John";
var age = 12;
var count = 5;
var postfix = 'age';
var person = {
name,
age,
count,
postfix,
printName(){
console.log(this.name);
this.count--;
while(this.count){
this.printName();
}
},
['print' + this.postfix]: function(){
console.log(this.age);
}
};
person.printName();
person.printAge();
Бабель выход
var name = "John";
var age = 12;
var count = 5;
var postfix = 'age';
var person = _defineProperty({
name: name,
age: age,
count: count,
postfix: postfix,
printName: function printName() {
console.log(this.name);
this.count--;
while (this.count) {
this.printName();
}
}
}, 'print' + postfix, function() { // Look here
console.log(this.age);
});
Похоже, что он правильно преобразован, в результате имя функции будет 'printage()', но вы пытаетесь получить к нему доступ с помощью 'printAge()', может быть, это проблема. – Stubb0rn
Образцы кода также не совпадают. Первый использует 'this.postfix', а второй использует' postfix' как имя свойства. Я буду второй @ Stubb0rn, хотя вам понадобится 'person.printage();' – loganfsmyth
Кажется, что это была моя ошибка + некоторое замешательство. Я думал, что он будет преобразован в вычисленное значение вместо «print» + postfix. –