Javascript 重新导入更新的变量

Javascript 重新导入更新的变量,javascript,Javascript,例如,假设我有两个文件a.js和b.js a、 js b、 js 现在,当我调用updateA()obj时,a值发生了变化,但b.js仍然将值打印为“a”。 如何在b.js中获取更新后的值?这是一个经典的参考值与值示例。当您导出.A=obj.A时,您导出的是字符串“A”,而不是对obj.A的引用。为了获得更新的值,您需要导出对obj的引用: a、 js b、 js 导出一个getA函数?这里有两件事:1。从技术上讲,您可以在导出上使用Object.defineProperty,导出get附件。2

例如,假设我有两个文件a.js和b.js

a、 js

b、 js

现在,当我调用
updateA()
obj时,a值发生了变化,但b.js仍然将值打印为“a”。
如何在b.js中获取更新后的值?

这是一个经典的参考值与值示例。当您导出.A=obj.A时,您导出的是字符串“A”,而不是对
obj.A
的引用。为了获得更新的值,您需要导出对
obj
的引用:

a、 js

b、 js


导出一个
getA
函数?这里有两件事:1。从技术上讲,您可以在导出上使用
Object.defineProperty
,导出get附件。2.您删除了对象destructuring
const{A}=require(“A.js”)
为了使这项工作正常进行,这是必要的,您应该调用它
const obj = {a: "a"}

function updateA() {
  obj.a = "b"
}

exports.A = obj.a
const {A} = require("a.js")

console.log(A) //prints a
const obj = {a: "a"}

function updateA() {
  obj.a = "b"
}

exports.A = obj;
const { A } = require("a.js")

console.log(A.a) //prints b