javascript:修改导入的 'variable' 导致 'Assignment to constant variable' 即使它不是常量
javascript: modifing an imported 'variable' causes 'Assignment to constant variable' even it is not a constant
我有两个文件,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
这是 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;
您可以尝试将 x 设置为对象 属性,如下所示:
export default {
x: 1
}
然后从你的第二个文件:
import file1API from "./file1.js";
console.log(file1API.x); //1
file1API.x = 2;
console.log(file1API.x); //2
请注意,x 的值也会在“file1.js”中更新。
我有两个文件,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
这是 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;
您可以尝试将 x 设置为对象 属性,如下所示:
export default {
x: 1
}
然后从你的第二个文件:
import file1API from "./file1.js";
console.log(file1API.x); //1
file1API.x = 2;
console.log(file1API.x); //2
请注意,x 的值也会在“file1.js”中更新。