繁体   English   中英

返回“ require”和node.js中的实际对象有什么区别

[英]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.jsapp.js将需要util.js 当到达require('./util.js')行时,它执行util.js中的代码并返回给您,它导出对象。 在这种情况下,导出对象包含函数的定义(plusOne),但它可以包含更复杂的对象。

这就是为什么您已初始化对象的原因。

但是要记住的一点是,require中的代码仅在您第一次需要文件时才执行。 之后,已初始化的对象将返回给您。 例如,如果要在另一个文件中使用require('./ util.js'),则Node足够聪明,可以意识到它已经执行了该文件,并把生成的对象(在本例中为里面的一个函数)而不必重新执行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM