在NodeJS中创建一个类

use*_*386 5 oop module class node.js

我怎样才能创建一个类的数组?

我看到这样的事情:

在main.js

....
mySuperClass = require('./mySuperClass.js');
objArray = new Object();
...
objArray["10"] = new mySuperClass(10);
console.log(objArray["10"].getI);
objArray["20"] = new mySuperClass(20);
console.log(objArray["20"].getI);
objArray["30"] = new mySuperClass(30);
console.log(objArray["30"].getI);
Run Code Online (Sandbox Code Playgroud)

在mySuperClass.js中

var _i = 0;
var mySuperClass = function(ar) {
_i = ar;
}

mySuperClass.prototype.getI = function()
{
  return _i
}
module.exports.create = function() {
  return new mySuperClass();
}
module.exports._class = mySuperClass;
Run Code Online (Sandbox Code Playgroud)

执行后,我收到一个错误

TypeError:object不是Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR(native)的函数

我需要纠正什么?

agm*_*eod 3

我能够通过使用以下内容让它工作:

var _i = 0;
var mySuperClass = function(ar) {
_i = ar;
}

mySuperClass.prototype.getI = function()
{
  return _i
}
/*module.exports.create = function() {
  return new mySuperClass();
} */
module.exports.mySuperClass = mySuperClass;

module = require('./myclass.js');
objArray = new Object();
objArray["10"] = new module.mySuperClass(10);
console.log(objArray["10"].getI());
objArray["20"] = new module.mySuperClass(20);
console.log(objArray["20"].getI());
objArray["30"] = new module.mySuperClass(30);
console.log(objArray["30"].getI());
Run Code Online (Sandbox Code Playgroud)

根据我在这里阅读的内容:http://nodeguide.com/beginner.html#the-module-system,您可以向导出对象添加属性,并按原样使用它们。我不确定创建的是否被保留,但我发现我不需要它。