我是一名c ++程序员,我目前正在使用javascript进入深层,并要求快速游泳。我正在使用browserify,所以我能够使用node.js用来访问其他文件中的代码的require函数。现在我所做的一切似乎都很好,我只是不确定我是否正确地做到了。
//a.js
module.exports = function(){
alert("hello world");
}
//b.js
var myClass = new MyClass();
module.exports = myClass;
//c.js
var a = require("./a.js");
a();
var b = require(./b.js");
b.prototype.test = 555;
//d.js
function () {
var a = require("./a.js");
a();
var b = require(./b.js");
assert(b.test === 555);
}
function () { // duplicated require called inside same file but different function
var a = require("./a.js");
a();
}
所以在我要使用a.js的每个函数和每个文件中,我是否必须调用require函数?似乎它会有点复杂。有一个更好的方法吗?还假设在d.js之前运行c.js会断言传递或者是否会导致创建myClass的副本,因此C和D之间的对象是不同的?
感谢您的帮助。
答案 0 :(得分:1)
require
功能的结果已缓存,因此仅在单个流程中 。
顺便说一句,我无法理解为什么你require
a.js
两次。为什么不做呢
//d.js
var a = require("./a.js");
function () {
a();
var b = require("./b.js");
assert(b.test === 555); // success!
}
function () { // no dupes!
a();
}