2012-02-07 99 views
0

我有一个简单的函数来调用其他功能:奇怪的JavaScript行为?

function update() { 
    updateMissiles(); 
    updatePlayer; 
    updateTurbines(); 

} 

它们类似于除了updatePlayer各种方式相互如果我把支架上它的结束将不会运行。这不会破坏任何代码,但我仍然好奇它为什么这样做?

+2

没有任何关于'updatePlayer'的知识,这是不可能的。但函数不会运行,除非它被调用,并且调用一个函数意味着'()'。 – 2012-02-07 16:31:21

+0

@BogdanProtsenko:什么是'updatePlayer'? “_updatePlayer不会运行_”和你如何检查它是否已经运行? – Tadeck 2012-02-07 16:32:27

+1

你的具体错误信息是什么?我的猜测是'updatePlayer'不是'update'执行时的函数。就在'updatePlayer'之前,编写'console.log(updatePlayer)'来查看它的值。 – benekastah 2012-02-07 16:32:33

回答

3

我猜在updatePlayer方法中有个例外,既然你没有在上面粘贴的代码中调用它,你没有得到Exception。

我会为您使用的任何浏览器打开开发工具,看看是否有任何JavaScript异常被抛出。

1

你很困惑。 updatePlayer;不会调用updatePlayer函数。 updatePlayer();呢。你的代码中正在发生其他事情。

0

不知道更多它不可能精确定位,但作为最佳猜测 - 在update函数的范围内,updatePlayer变量不是函数。

尝试记录或调试您的JavaScript以了解发生了什么。

0

只有在名称后面加上(),函数才会运行。 如果你不放置括号,你会得到函数的内容。 例如,如果您有:

function updatePlayer(){ alert('This is a player');} 

,并调用它没有括号:

alert(updatePlayer); 

的警告输出将是

function updatePlayer(){ alert('This is a player');} 

,如果你想使用回调函数时使用。