假设我们有一个main.js文件,代码如下:
main.js
var count = 0 function increase(){ count = count + 1 } export default count
其中当单击按钮时调用函数increase()。现在,如果我们从另一个文件导入变量count,比如index.js。然后我们按下按钮。index.js中的值是否会更新?如果没有,如何做到这一点?
increase()
index.js
xj3cbfub1#
现在,如果我们从另一个文件导入变量count,比如index.js。然后我们按下按钮。index.js中的值会更新吗?如果没有,如何做到这一点?不,它不会更新。当你导入一个原始值,比如一个数字时,你在导入它的时候就得到了这个值,然后这个值作为一个副本被赋值给你的新变量(不管你导入了什么变量)。它将不再与原始文件中导入的变量有任何关系。导入/导出将更新的内容的常用方法是导出具有属性的对象。对象(与基元不同)通过复制对同一对象的引用来赋值和导入。
const obj = { count: 0 }; function increase(){ obj.count++; } export obj;
然后,您可以从另一个文件导入该对象,该对象中的count属性将反映在任一文件中所做的任何更改,因为您将拥有指向完全相同的对象的指针,从而访问该对象中的相同属性。
count
1条答案
按热度按时间xj3cbfub1#
现在,如果我们从另一个文件导入变量count,比如index.js。然后我们按下按钮。index.js中的值会更新吗?如果没有,如何做到这一点?
不,它不会更新。当你导入一个原始值,比如一个数字时,你在导入它的时候就得到了这个值,然后这个值作为一个副本被赋值给你的新变量(不管你导入了什么变量)。它将不再与原始文件中导入的变量有任何关系。
导入/导出将更新的内容的常用方法是导出具有属性的对象。对象(与基元不同)通过复制对同一对象的引用来赋值和导入。
然后,您可以从另一个文件导入该对象,该对象中的
count
属性将反映在任一文件中所做的任何更改,因为您将拥有指向完全相同的对象的指针,从而访问该对象中的相同属性。