2014-09-13 196 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