Nodejs需要具有初始化程序的类

时间:2011-04-16 22:46:23

标签: javascript class node.js

例如,我有以下课程

var Person = function(name)
{
  this.sayHi = function()
  {
    return "Hello, " + name + "!";
  }
}

exports.Person = Person;

在nodejs中我尝试了

var Person = require('modulename').Person('Will');

但这只是不明身份。如何在nodejs中需要一个带有初始化器的类?

2 个答案:

答案 0 :(得分:14)

var mod = require('modulename');
var somePerson = new mod.Person('Will');

在您的代码中,您直接调用了构造函数而没有new,因此this绑定到全局上下文而不是新的Person对象。因为你没有在函数中返回this,所以你得到了未定义的错误。

请参阅http://jsfiddle.net/ThiefMaster/UCvC2/进行一些演示。

答案 1 :(得分:1)

找到修复程序,虽然看起来略显笨拙,但我想在一行上导入导入类只是创建一个看起来很糟糕的实例。我想它并没有被解释为一个功能。 @ThiefMaster感谢'新',我也忘记了:/

var will = new (require('modulename').Person)('Will')