Почему я могу переназначить const, если вы импортируете * как имя в JavaScript? - PullRequest
0 голосов
/ 31 мая 2018

Почему можно переназначить const, если я импортирую его как содержимое всего модуля?Это должно работать так?Я думал, что const должен быть неизменным.

Например:

// constants.js
export const APPLE = 'apple';

// app.js
import { APPLE } from 'constants.js';
import * as constants from 'constants.js';

constants.APPLE = 'banana';
console.log(APPLE);

//output
banana;

Я не могу переназначить const APPLE напрямую, но могу переназначить constants.APPLEчто также дает APPLE новое значение.

Когда я печатаю constants в Chrome, я получаю вывод ниже.

//output of constants
{APPLE: "apple", __esModule: true}
  APPLE: "banana"
  __esModule: true
  __proto__: Object

Почему значения APPLE отличаются

...