例如,我有以下课程
var Person = function(name)
{
this.sayHi = function()
{
return "Hello, " + name + "!";
}
}
exports.Person = Person;
在nodejs中我尝试了
var Person = require('modulename').Person('Will');
但这只是不明身份。如何在nodejs中需要一个带有初始化器的类?
答案 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')