我本质上是一名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吗?看上去会有点纠结。有更好的方法吗?另外,假设c.js是在d.js之前运行的,那么断言会通过,还是会导致创建myClass的副本,所以C和D之间的对象是不同的?
谢谢你的帮助。
发布于 2015-04-20 09:57:11
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();
}https://stackoverflow.com/questions/29744527
复制相似问题