我有一个关于在模块中定义对象的问题。
假设我有一个模块:
/*---obj----*/
function A (param){
this.parm=param;
function func(){
//do somthing
}
}
exports.func=func;
/*---file.js----*/
obj=require('obj');
function fileFunc(A){
A.func();//with out this line it works fine
A.param=2;
}
}
由于某种原因,它无法识别对象A中的函数。它识别对象A及其不同的变量,但是当执行该函数时,它给出了msg:
TypeError:Object#没有方法'func'
我还尝试通过以下方式导出A中的函数: exports.A.func = A.func
或 exports.func = FUNC 既不起作用..
有人有线索吗?
感谢名单 马蒂
答案 0 :(得分:1)
您在A中定义的函数仅对该函数是本地的。你想要的是
function A(param) {
this.param = param;
}
A.func = function() {
// do something
};
但如果您将A视为构造函数,那么您将希望将该函数放入A的原型中
A.prototype.func = function() {
// do something
};