2011-04-16 44 views
7

例如I类有下面的类要求的NodeJS与初始化

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

exports.Person = Person; 

在我的NodeJS试图

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

但这只是给了不明。我如何在nodejs中需要一个具有初始化器的类?

回答

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

在你的代码,你直接调用构造函数没有new,所以this被绑定到全球范围,而不是一个新的Person对象。由于你的函数中没有返回this,所以你得到了未定义的错误。

请参阅http://jsfiddle.net/ThiefMaster/UCvC2/的一个小演示。

+0

你调用'Person',而不是'mod.Person' – Raynos 2011-04-16 23:59:02

1

找到了修复程序,虽然看起来有些aw,,但我希望在一行上导入,因为只导入类也创建了一个它看起来很糟糕的实例。我想这不是一个函数。 @ThiefMaster关于“新”谢谢,我忘了这一点,以及:/

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

您可能需要编辑成你的答案。现在缺少新的它仍然是不正确的。 – ThiefMaster 2011-04-17 00:05:36