首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS:你的功能不是函数!TypeError

JS:你的功能不是函数!TypeError
EN

Stack Overflow用户
提问于 2016-07-03 13:18:11
回答 1查看 94关注 0票数 0

我有一个小的RTS游戏,你可以攻击一个怪物。我想要它设置,当游戏加载或开始,strike()功能将触发后3秒。然而,当我在下面运行这段代码时,我会得到一个类型错误,即"strike()“不是一个函数。如果不是函数,那又是什么呢?

如果您想知道player.cc是什么意思,那么它代表了当前字符。其余的只是指一个平衡表,我在游戏中。

代码语言:javascript
复制
dom.el("strike").onclick = function strike() {
    HitCalc(player.cc, monster.cc);
    actor.expCounter(player.cc);
    actor.balanceCounter(player.cc, monster.cc);
};

 setTimeout(strike(), 3000);

可能有助于下列方面的其他代码:

代码语言:javascript
复制
dom = {
    el: function (id){
        return document.getElementById(id);
    },

HTML:

代码语言:javascript
复制
<button id="strike" type="button" class="buttons">Strike</button>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-03 13:24:47

虽然您认为为事件处理程序分配名称的函数仍然在当前作用域中被悬挂和声明,但在这部分中您弄错了:它仍然是分配给属性的函数,就像任何匿名内联函数一样。

你需要的是:

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38170335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档