理解 require() 与 module.exports 与 javascript 和 browserify
understanding require() with module.exports with javascript and browserify
我本质上是一名 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();
}
我本质上是一名 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();
}