Я пытаюсь понять деструктурирование в ES2015 (ECMAScript 6).Деструкция, дающая синтаксический анализ
Я хочу, чтобы функция работала с некоторыми переменными и переназначала новые переменные.
В приведенном ниже примере я создал функцию инициализации foo и bar и другую функцию для изменения foo и bar.
Я создал три функции, которые используют foo и bar. Два из них работают, а другой нет. Я не могу понять, почему.
Пожалуйста, поделитесь любой информацией, чтобы помочь мне в понимании.
Спасибо!
function initializeFooBar() {
let foo = 1,
bar = 2;
return {foo, bar};
}
function changeFooBar(f, b) {
let foo = f*2,
bar = b*2;
return {foo, bar};
}
function fooBarWorks() {
let {foo, bar} = initializeFooBar();
console.log(foo + bar); // 3
}
function fooBarAlsoWorks() {
let f = 1,
b = 2,
{foo, bar} = changeFooBar(f, b);
console.log(foo + bar); // 6
}
function fooBarDoesntWork() {
let {foo, bar} = initializeFooBar();
{foo, bar} = changeFooBar(foo, bar); // causes parsing error
console.log(foo + bar);
}
fooBarWorks(); // writes 3 to console
fooBarAlsoWorks(); // writes 6 to console
fooBarDoesntWork(); // doesn't run due to "parsing error unexpected tolken ="
Символ '' {в начале заявления обрабатывается как блок, а не конструктор объекта. – melpomene