[英]What's the difference of the return of “require” and the actual object in node.js
在node.js中,我们通常使用“ require”来包含其他文件的模块,无论它来自我们自己还是第三方。 但是,对我来说,返回“项目”与实际对象之间的区别是模棱两可的。
以我的观点,返回“ item”尚未初始化,因此它假定不是对象。 但是,有时我们可以直接使用其下的方法。
我应该如何实现这种差异?
当您需要文件/模块时,将执行所需文件中的代码,并将其导出对象返回给您。 例如下面的代码:
// util.js
var plusOne = function(x) { return x + 1; }
exports.plusOne = plusOne;
// app.js
var util = require('./util.js');
var z = util.plusOne(1);
console.log(z); // will output 2
当执行app.js
, app.js
将需要util.js
当到达require('./util.js')
行时,它执行util.js中的代码并返回给您,它导出对象。 在这种情况下,导出对象包含函数的定义(plusOne),但它可以包含更复杂的对象。
这就是为什么您已初始化对象的原因。
但是要记住的一点是,require中的代码仅在您第一次需要文件时才执行。 之后,已初始化的对象将返回给您。 例如,如果要在另一个文件中使用require('./ util.js'),则Node足够聪明,可以意识到它已经执行了该文件,并把生成的对象(在本例中为里面的一个函数)而不必重新执行代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.