我有一个小的RTS游戏,你可以攻击一个怪物。我想要它设置,当游戏加载或开始,strike()功能将触发后3秒。然而,当我在下面运行这段代码时,我会得到一个类型错误,即"strike()“不是一个函数。如果不是函数,那又是什么呢?
如果您想知道player.cc是什么意思,那么它代表了当前字符。其余的只是指一个平衡表,我在游戏中。
dom.el("strike").onclick = function strike() {
HitCalc(player.cc, monster.cc);
actor.expCounter(player.cc);
actor.balanceCounter(player.cc, monster.cc);
};
setTimeout(strike(), 3000);可能有助于下列方面的其他代码:
dom = {
el: function (id){
return document.getElementById(id);
},HTML:
<button id="strike" type="button" class="buttons">Strike</button>发布于 2016-07-03 13:24:47
虽然您认为为事件处理程序分配名称的函数仍然在当前作用域中被悬挂和声明,但在这部分中您弄错了:它仍然是分配给属性的函数,就像任何匿名内联函数一样。
你需要的是:
function strike() {
HitCalc(player.cc, monster.cc);
actor.expCounter(player.cc);
actor.balanceCounter(player.cc, monster.cc);
};
dom.el("strike").onclick = strike;
// Note that setTimeout expects a reference to the function rather than
// a function call!!
setTimeout(strike, 3000);https://stackoverflow.com/questions/38170335
复制相似问题