如果你在JavaScript中导入*作为名称,为什么我可以重新分配const?

时间:2018-05-30 21:50:11

标签: javascript import export const immutability

如果我将它作为整个模块的内容导入,为什么可以重新分配给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提供一个新值。

当我在Chrome中打印constants时,我会得到以下输出。

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

为什么APPLE的值不同?

0 个答案:

没有答案