--- main.js ---
var myModule = require('./module_a.js');
var value = 0;
myModule.set(35);
console.log("myModule.data:", myModule.data);
console.log("myModule.get():",myModule.get());
console.log(myModule);
--- module_a.js ---
exports.data = 10;
exports.set = function(value) {
data = value;
};
exports.get = function() {
return data;
};
我预计 main.js
的结果是 2 个 console.log()
中各 35 个。但是,结果是每个 10。
我不知道为什么会发生这种情况。在 require
方法中,变量 myModule
是一个对象,它具有 data
、函数 set
、函数 get
。
因此,myModule.set(35)
应该将 myModule
对象的数据更改为 35。但是,它仍然是 10。
如果我使用this.data = value
并返回this.data
。它按我的预期工作。但不是第一种情况(我上面的源代码)
为什么会发生这种情况?
最佳答案
您的模块
中没有本地data
变量。
尝试更改此行
exports.data = 10;
至
var data = 10;
exports.data = data;
关于javascript - Node.js 更改所需对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998861/