使用node.js模块导出中的方法定义

使用node.js模块导出中的方法定义,node.js,methods,module,export,Node.js,Methods,Module,Export,我有一个node.js模块,它有foo和bar。我有没有办法在bar中调用foo,比如: module.exports = { foo: function(a, b, c) { }, bar: function(a, b, c) { foo(); //returns 'foo is not defined' } } 按原样,foo返回未定义的。。。有人能帮忙吗 提前谢谢 是的,有。只需使用这个 module.exports = { f

我有一个node.js模块,它有
foo
bar
。我有没有办法在
bar
中调用
foo
,比如:

module.exports = {
    foo: function(a, b, c) {

    },

    bar: function(a, b, c) {
        foo(); //returns 'foo is not defined'
    }
}
按原样,
foo
返回未定义的。。。有人能帮忙吗


提前谢谢

是的,有。只需使用
这个

module.exports = {
    foo: function(a, b, c) {

    },

    bar: function(a, b, c) {
        this.foo();
    }
}

我建议阅读有关使用对象的内容。

是的,有。只需使用
这个

module.exports = {
    foo: function(a, b, c) {

    },

    bar: function(a, b, c) {
        this.foo();
    }
}

我建议阅读有关使用对象的内容。

@victorkohl的答案会有用的。或者,您也可以使用闭包来避免调用此:

function foo (a, b, c) {
}

function bar (a, b, c) {
    foo();
}

module.exports = {
    foo: foo,
    bar: bar
};

@维克多科尔的答案会起作用。或者,您也可以使用闭包来避免调用此:

function foo (a, b, c) {
}

function bar (a, b, c) {
    foo();
}

module.exports = {
    foo: foo,
    bar: bar
};

为了好玩,这也行:

    foo(); //returns 'foo is not defined'


(我推荐@victorkohl的独立版本。)

为了好玩,这也适用:

    foo(); //returns 'foo is not defined'

(我推荐@victorkohl的独立版本。)