2014-09-13 194 views
0

我是JavaScript新手,我对我做错了什么感到困惑。试图在html中调用javascript函数

所以,我有一个外部的.js定义函数的文件是这样的...

var game = (function() { 

    function start_game() { 
    ... 
    } 

    function step() { 
    ... 
    } 

... 
} 

现在我想我的HTML页面来调用这些函数;首先start_game()一次,然后每隔一秒重复一次。

我试过下面的代码,在这个主题上的几个帖子中这样做的HTML代码,但在任何情况下,我的代码是从来没有实际执行......我该怎么办?

+0

你不能,你只是将这些函数包装在一个IIFE中,所以它们不可用,问题是为什么你会做这样的事情? – adeneo 2014-09-13 19:01:29

+0

看起来'start_game'和'step'是**本地**给IIFE,所以它们不能从外面调用。 – 2014-09-13 19:01:30

+0

保护功能内的数字,但这样的名字,我不知道你为什么想要他们相当明显 – Parody 2014-09-13 19:03:41

回答

0

不知道你为什么用这样的匿名函数包装你所有的命名函数。 (Prob尝试像一个IIF)然而,既然你是一个初学者,采取一步,并开始一些更基本的东西。

<input type="button" onclick="start_game()" value="click to begin" /> 
<script> 
function start_game() { 
... 
} 
</script> 

至于有东西每x秒重复调用一个函数。看看像setTimeout这样的东西。 http://www.w3schools.com/jsref/met_win_settimeout.asp

+0

[请不要链接到w3schools](http://www.w3fools.com/)他们是不是权威人士,往往有错误信息。尝试[这](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout)而不是 – OneHoopyFrood 2014-09-13 19:11:14

+0

你的权利w3schools不是一个权威,但是像setTimeout那样基本的东西,我认为Mozilla页面但对于初学者来说,这有点太多了。 – 2014-09-13 19:17:58

+1

正如w3fools链接所述:对于许多初学者来说,W3Schools有结构化的教程和游乐场,提供了不错的学习体验。然而,如果不从更多有信誉的来源学习,继续学习将是一个错误,所以当你准备好升级时,继续前进。 – 2014-09-13 19:19:19