javascript - 如何从 node.js 中的该函数调用结构内的函数?
问题描述
好的,这是我的代码的基本大纲
exports.entity = {
name:"Foo",
//Etc...
start:function() {
this.attack();
},
attack:function() {
setTimeout(attack, 1000); //Doesn't work
setTimeout(this.attack, 1000); //Doesn't work
setTimeout(this, 1000); //Doesn't work
}
}
正如您可能看到的,我想attack()
使用setTimeout
. 不幸的是,我尝试过的一切都不起作用,而且我的想法已经枯竭。我在互联网上找不到任何东西。有谁知道我怎么能做到这一点?
注意:当我说 时doesn't work
,我的意思是它给了我一个错误,比如(insert what I tried here, e.g. 'this.attack') is not a function
解决方案
为了避免范围问题,我通常会做的是拆分功能。然后导出对象。
const attack = () => {
console.log('attacking');
setTimeout(() => {
stop();
}, 1000)
};
const stop = () => {
console.log('stopping');
}
const start = () => {
attack();
}
module.exports = { start, stop, attack }
否则,您可以按照评论中的建议绑定(this)。