【发布时间】:2017-08-22 13:38:11
【问题描述】:
我对模块的理解是它们彼此不同。但是我不明白为什么这段代码可以工作。
假设我在 node.js 框架中有三个文件。一个“app.js”驱动文件和两个模块:
模块“one.js”只是有一个名为“name”的属性:
module.exports = {
name: null
}
模块“two.js”加载模块“one.js”并声明一个函数,打印出“one.js”模块中属性“name”的内容:
var one = require('./one');
module.exports = {
printname: function()
{
console.log(one.name);
}
}
现在驱动程序(app.js)导入两个模块,设置第一个模块的属性,然后调用第二个模块的名称打印函数:
var one = require("./one");
var two = require("./two");
two.printname();
one.name = "John";
two.printname();
当我运行它时,它会打印“null”(很好,它应该是空的),然后是“John”(不好)。第二个模块如何学习第一个模块中的值?
我的想法是:当“two.js”加载自己版本的“one.js”时,属性“name”应该始终为null。为什么不是这样?
【问题讨论】:
标签: javascript node.js