1. 程式人生 > >編程題:計時器

編程題:計時器

毫秒 返回 定時 ++ timeout span 第一個 pre func

實現一個打點計時器,要求
1、從 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一個數字,每次數字增幅為 1
2、返回的對象中需要包含一個 cancel 方法,用於停止定時操作
3、第一個數需要立即輸出

錯誤示範:
function count(start, end) {
   var i = startvar clock = setTimeout(function(){
       if(i<=end){
       console.log(i++) count(i, end) } },
100)
return { cancel:function(){ clearTimeout(clock) } } }

錯誤分析:

1、第一個數字沒有立即輸出:應將 console.log(i++) 提出到 setTimeout 外。

2、無法停止定時操作:應將 clock 的定義放在 count 函數外部。因為閉包內部的參數,初始化後就不會隨著外部clock 的更改而更改。

編程題:計時器