Как я смог изменить импортированное значение в ES6? - PullRequest
0 голосов
/ 30 мая 2019
//lib-es6.js

export let counter = 3;
export function incCounter() {
  counter++;
}

Из 16.7.2 раздела , учитывая, что даже если мы импортируем модуль через звездочку (*), импортированное значение не может быть изменено.

//main-es6.js

import * as lib from './lib-es6'; // imported via asterisk(*)

// The imported value `counter` is live
console.log(lib.counter); // 3 . => I expected this
lib.incCounter();
console.log(lib.counter); // 4 . => I expected this

/****************************************/ 
// But I was able to change lib.counter.
// Question: Can we change imported value in ES6 if we import it via asterisk (*)?
lib.counter++; // Not an error. ==> I DID NOT expected this.
console.log(lib.counter); // 5
/****************************************/    

1 Ответ

3 голосов
/ 30 мая 2019

Вы на самом деле не выполняете модуль ES, вы выполняете модуль CommonJS (который был перенесен из модуля ES). Вы должны получить ожидаемый результат, если вы выполняете этот код нативно:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...