我有一个具有foo
和bar
的node.js模块。我有办法在foo
内拨打bar
,如:
module.exports = {
foo: function(a, b, c) {
},
bar: function(a, b, c) {
foo(); //returns 'foo is not defined'
}
}
按原样,foo
返回undefined ...有人可以帮忙吗?
提前致谢!
答案 0 :(得分:1)
是的,有。只需使用this
。
module.exports = {
foo: function(a, b, c) {
},
bar: function(a, b, c) {
this.foo();
}
}
我建议在处理对象时阅读this article。
答案 1 :(得分:1)
@ victorkohl的回答将起作用。或者,您也可以使用闭包来避免调用this
:
function foo (a, b, c) {
}
function bar (a, b, c) {
foo();
}
module.exports = {
foo: foo,
bar: bar
};
答案 2 :(得分:1)
只是为了它的乐趣,这也有效:
foo(); //returns 'foo is not defined'
与
module.exports.foo();
(我推荐来自@victorkohl的自包含版本。)