javascript:修改导入的“变量”会导致“分配给常量变量”,即使它不是常量

时间:2018-12-11 11:30:26

标签: javascript node.js ecmascript-6 es6-modules es6-module-loader

我有两个文件,file1导出变量'not a constant'var x = 1 和file2从其中导入该变量

问题在于,即使它不是一个常量,我也无法修改该导入变量!

file1.js

export var x=1 //it is defined as a variable not a constant

file2.js

import {x} from 'file1.js'
console.log(x) //1
x=2 //Error: Assignment to constant variable

1 个答案:

答案 0 :(得分:1)

这是the immutable exported module values的影响。您可以在同一模块中使用其他功能覆盖它

在文件1中:

export let x = 1;
export function modifyX( value ) { x = value; }

在文件2中

import { x, modifyX } from "file1.js"

console.log( x ) // 1;
modifyX( 2 );
console.log( x ) // 2;