gpt4 book ai didi

javascript - 通过 JavaScript 和 browserify 理解 require() 和 module.exports

转载 作者:太空宇宙 更新时间:2023-11-04 00:56:09 26 4
gpt4 key购买 nike

我本质上是一名 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 之间的对象不同?

感谢您的帮助。

最佳答案

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();
}

关于javascript - 通过 JavaScript 和 browserify 理解 require() 和 module.exports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29744527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com