Nodejs需要具有初始化器的类

例如,我有以下类

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

在nodejs中,我试过了

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

但这只是给了身份不明的人。 我如何要求在Nodejs中有初始化器的类?

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

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

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

find了修复程序,虽然看起来稍微有一点点兴趣,但是我只想在一行中导入,因为导入类也只是创build了一个看起来不好的实例。 我想这不是被解释为一个function。 @ThiefMaster感谢“新”,我也忘了:/

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