oop - 在 NodeJS 中创建一个类

标签 oop class node.js module

如何创建我的类的数组?

我看到的是这样的:

在 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);

在 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;

执行后报错

TypeError: object is not a function at Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR (native)

我需要纠正什么?

最佳答案

我能够通过使用以下方法让它工作:

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());

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

关于oop - 在 NodeJS 中创建一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296379/

相关文章:

java - 如何使用在方法内部定义的变量在java中同一类的另一个方法中使用方法外部

c# - 在抽象类中实现接口(interface)

c# - 可扩展的所有者界面

python - 类范围内的闭包

c++ - 此 C++ 实现模式的名称

javascript - 避免在 Mocha 测试的 Elasticsearch 请求中使用 setTimeout()

javascript - 如何在 Javascript 中测试多重继承

java - 如何创建属于字符串中指定类的对象?

node.js - 如何使用环回保护不同角色的属性

javascript - Browserify 用 casperJS 编写的抓取工具