JavaScript 要如何將參數傳入 setTimeout()

JavaScript setTimeout() 蠻常會使用到的, 使用方法很簡單(如下述), 但是要怎麼將參數帶進去?

setTimeout 使用方式

範例

setTimeout("hello", 1000); // 每1秒執行一次 hello().

setTimeout("hello()", 1000); // 每1秒執行一次 hello().

若是要將參數傳進去, 要注意的是 "javascript statement" 此為 函式名稱(Function name), 而且是"字串".

參數帶入的方式如下範例

setTimeout("move_to(" + move_pos + ")", 1000); // 每秒執行一次 move_to(move_pos), move_pos 是變數值.

setTimeout("move_to(" + move_pos_x + "," + move_pos_y + ")", 1000); // 每秒執行一次 move_to(move_pos), move_pos 是變數值.

setTimeout("move_to('" + string + "')", 1000); // 每秒執行一次 move_to(string), string 是變數值(字元、字串).

附註

  • 若是 setTimeout(hello, 1000);, (沒有指定 hello 為字串) 會無窮盡的執行 hello(). XD

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 Programming 並標籤為 。將永久鏈結加入書籤。

JavaScript 要如何將參數傳入 setTimeout() 有 7 則回應

  1. dada 說道:

    setTimeout 只會執行一次,若要達到連續執行效果,還是要在執行結束前再呼叫一次 setTimeout。不然就要改用 setInterval。

  2. liaosankai 說道:

    Tsung大,如果你是使用jQuery開發的話,我之前有找到一個lib很好用,也寫了一篇文章,供你參考看看:http://goo.gl/z7lKe

  3. mlwmlw 說道:

    這樣可以不用寫成字串~

    setTimeout((function(pos) {
    return function() { move_to(pos) }
    })(move_pos), 1000);

發表迴響