【发布时间】:2016-01-15 16:48:27
【问题描述】:
在 es6 中你可以定义一个这样的函数模块
export default {
foo() { console.log('foo') },
bar() { console.log('bar') },
baz() { foo(); bar() }
}
上面似乎是有效的代码,但如果我调用baz() 它会抛出一个错误:
ReferenceError: foo is not defined
如何从另一个函数调用foo?在这种情况下baz
编辑
这是实际上不起作用的代码。我已经简化了代码,所以它只是需要的核心
const tokenManager = {
revokeToken(headers) {
...
},
expireToken(headers) {
...
},
verifyToken(req, res, next) {
jwt.verify(... => {
if (err) {
expireToken(req.headers)
}
})
}
}
export default tokenManager
错误是
expireToken(req.headers);
^
ReferenceError: expireToken is not defined
编辑 2
我刚刚尝试在expireToken 之前添加tokenManager,它终于可以工作了
【问题讨论】:
-
查看我或@pawel 的回答。要修复,请将
expireToken(req.headers)替换为tokenManager.expireToken(req.headers)或this.expireToken(req.headers)。