NodeJS 如果我改变了一个变量的值,它会在导出它的文件中更新吗?

s8vozzvw  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(167)

假设我们有一个main.js文件,代码如下:

var count = 0
function increase(){
    count = count + 1
}
export default count

其中当单击按钮时调用函数increase()
现在,如果我们从另一个文件导入变量count,比如index.js。然后我们按下按钮。index.js中的值是否会更新?如果没有,如何做到这一点?

xj3cbfub

xj3cbfub1#

现在,如果我们从另一个文件导入变量count,比如index.js。然后我们按下按钮。index.js中的值会更新吗?如果没有,如何做到这一点?
不,它不会更新。当你导入一个原始值,比如一个数字时,你在导入它的时候就得到了这个值,然后这个值作为一个副本被赋值给你的新变量(不管你导入了什么变量)。它将不再与原始文件中导入的变量有任何关系。
导入/导出将更新的内容的常用方法是导出具有属性的对象。对象(与基元不同)通过复制对同一对象的引用来赋值和导入。

const obj = { count: 0 };
function increase(){
    obj.count++;
}
export obj;

然后,您可以从另一个文件导入该对象,该对象中的count属性将反映在任一文件中所做的任何更改,因为您将拥有指向完全相同的对象的指针,从而访问该对象中的相同属性。

相关问题