首页 > 解决方案 > javascript:修改导入的“变量”会导致“分配给常量变量”,即使它不是常量

问题描述

我有两个文件,file1 导出一个变量'不是常量' var x=1 和 file2 从中导入这个变量

问题是我不能修改那个导入的变量,即使它不是一个常数!

文件1.js

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

文件2.js

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

标签: javascriptnode.jsecmascript-6es6-moduleses6-module-loader

解决方案


这是不可变的导出模块值的影响。您可以使用同一模块中的另一个函数覆盖它

在您的文件 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;

推荐阅读