假设我有var.js
export let x = 1;
export const f = () => x = 5;
然后我在另一个文件中执行此操作
import { x, f } from './var.js';
console.log(x); // 1
f();
console.log(x); // 5
为什么导入的变量x
能够相应更改?
import { x }
中的x
发生更改后会var.js
重新评估吗?
或x
引用x
中的原始var.js
而不是副本?
答案 0 :(得分:3)
ES6导入/导出实际上是绑定(引用)。随着原始文件x
中var.js
的值发生变化,它也会反映在另一个文件中。
答案 1 :(得分:0)
解决方案不适用于功能
export let e = () => {
console.log('b')
}
window.b = () => {
e = () => {
console.log('c')
}
}
当从另一个文件调用时,“引用”不变。
import { e } from './test'
e() // b
b()
e() // still b