【发布时间】:2012-05-14 18:55:45
【问题描述】:
如何在 module.exports 声明中从另一个函数中调用一个函数?
var bla = require('./bla.js');
console.log(bla.bar());
bla.js
module.exports = {
foo: function (req, res, next) {
return ('foo');
},
bar: function(req, res, next) {
this.foo();
}
}
我正在尝试从函数 bar 中访问函数 foo,结果如下:
TypeError: Object # has no method 'foo'
如果我将 this.foo() 更改为 foo(),我会得到:
ReferenceError: foo 未定义
【问题讨论】:
-
我测试了你的代码并且没有错误。 bar 函数返回 undefined 因为没有返回语句。你确定你的测试正确吗?
-
在节点版本
v8.12.0中测试,不再抛出错误。bar没有返回语句,所以运行console.log(bla.bar())只会返回undefined -
@Ferchi 谢谢,我错过了同样简单的事情。