Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 Node.js模块与对象_Javascript_Node.js - Fatal编程技术网

Javascript Node.js模块与对象

Javascript Node.js模块与对象,javascript,node.js,Javascript,Node.js,我一直在玩node.js,来自Java背景,我正在努力区分模块和JavaScript中对象的典型概念 在实施模块时,我目前的做法是: // someModule.js var privateVariable; this.sampleFunction = function() { // ... } 现在,我在另一个地方使用此模块的方式是: var moduleName = require('./someModule'); var foo = moduleName.sampleFuncti

我一直在玩node.js,来自Java背景,我正在努力区分模块和JavaScript中对象的典型概念

在实施模块时,我目前的做法是:

// someModule.js
var privateVariable;
this.sampleFunction = function() {
   // ...
}
现在,我在另一个地方使用此模块的方式是:

var moduleName = require('./someModule');

var foo = moduleName.sampleFunction();
我不知道这是否是在node.js中进行模块化开发的正确方法-因为我意识到我实际上并没有使用对象,比如使用new()-当我想要集合时,我需要这样做。如果我想要一个person对象集合,这里的正确方法是什么-我的模块和它的定义是什么样的

// someModule.js
var privateVariable;
this.Person = function(firstName, lastName) {
   this.firstName = '...';
}
然后:

var moduleName = require('./someModule');

var foo = new moduleName.Person('foo', 'bar');

模块是一个名称空间,用于在其中保存一组相关项。因此,您可能有一个“personcollections”模块,其中包含几种类型的personcollections,例如“lineup”、“pile”和“dumpster”


根据您使用的是oo还是函数式的写作风格,实际的代码看起来会有所不同

对于您的问题的一般背景,您可能会发现Douglas Crockford的JavaScript:The Good Parts是一本很有帮助的书。它提供了一个清晰而简洁的解释(整本书只有176页——这是罕见的),说明了JavaScript与“经典”(正如作者所说)语言的区别。