首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带javascript和browserify的module.exports理解要求()

问使用带javascript和browserify的module.exports理解要求()
EN

Stack Overflow用户
提问于 2015-04-20 09:51:37
回答 1查看 238关注 0票数 1

我本质上是一名c++程序员,目前我正被javascript抛到最底层,我被要求游得很快。我使用的是browserify,所以我可以使用node.js使用的require函数来访问其他文件中的代码。现在我所做的一切似乎都很好,我只是不确定我是否做得对。

代码语言:javascript
复制
//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之间的对象是不同的?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-20 09:57:11

require函数的结果是缓存的,因此它只在单个进程中是相同的。

顺便说一句,我不明白你为什么require a.js两次。为什么不直接做

代码语言:javascript
复制
//d.js
var a = require("./a.js");
function () {
    a();
    var b = require("./b.js");
    assert(b.test === 555); // success!
}
function () { // no dupes!
    a();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29744527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档