Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在多个文件中要求lib的正确方法_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript 在多个文件中要求lib的正确方法

Javascript 在多个文件中要求lib的正确方法,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我有两个文件——一个是主代码执行,另一个只是其中的一个类 例如: 文件1: const _ = require('underscore'), CoolClass = require('CoolClass'); _.map(//something) 文件2: const _ = require('underscore'); class CoolClass(){ constructor(){ _.map(//something); } } 需要图书馆的正确方式是什么 如果我在

我有两个文件——一个是主代码执行,另一个只是其中的一个类

例如:

文件1:

const _ = require('underscore'),
CoolClass = require('CoolClass');

_.map(//something)
文件2:

const _ = require('underscore');

class CoolClass(){
  constructor(){
    _.map(//something);
  }
}
需要图书馆的正确方式是什么

如果我在两个文件中都需要它,我们应该只在主文件中需要它,然后将其传递给构造函数,如:

let cool_stuff = new CoolClass(_);
或者我应该在需要时通过它,所以:

const _ = require('underscore')(_);

谢谢

是的。在节点中,您总是将其独立地包含在每个文件中

加载库(无论是节点的本机
require
还是其他什么)通常会缓存模块,以避免实际从文件系统多次重新加载模块

这样做是为了在每个文件中都有一个引用库的变量

从技术上讲,您可以执行第二个选项,但通常只有在必须从该库导入对象并以某种方式对其进行初始化时,才可以执行该操作,然后才可以传递已初始化的对象


类似于下划线的东西,只是导入和使用,您只需要在每个中使用它。

是的。在节点中,您总是将其独立地包含在每个文件中

加载库(无论是节点的本机
require
还是其他什么)通常会缓存模块,以避免实际从文件系统多次重新加载模块

这样做是为了在每个文件中都有一个引用库的变量

从技术上讲,您可以执行第二个选项,但通常只有在必须从该库导入对象并以某种方式对其进行初始化时,才可以执行该操作,然后才可以传递已初始化的对象


类似下划线的东西,只是导入和使用,您只需要在每一个中使用。

谢谢,我会坚持这个,然后谢谢,我会坚持这个