6

我正在制作一个简单的记忆游戏。我使用了一些 setTimeout。直到某一点,它进展顺利。之后我想添加一个秒表。和bom。我得到了这个错误。

Uncaught TypeError: Property 'setTimeout' of object [object Object] is not a function

在这一行:

function counter(){

ctxCounter.font="100pt Arial";
var fillT= setTimeout( function(){ctxCounter.fillText("3",270,340);} , 100);
var clearT= setTimeout( function(){counterClear();} , 1000);  
}

和我的秒表部分的代码。添加此行后,我得到上面写的错误。但如果没有秒表,一切都会完美运行。

var timer=0;
var running=false;
    

    function startPause(){
        if(running==false){
            running=true;
            increment();
        }
        else running=false;             
    }

    function reset(){
        timer=0;
        running=false;
    }


    function increment(){
        if(running==true){
            
            window.setTimeout=(

                function(){
                var mins= Math.floor(timer/600);
                var secs= Math.floor(timer/10);
                var tenths= timer%1000;
                var all= mins+":"+secs+":"+tenths;
                console.log(all);
                increment();
                },100);
        }

    }

我在这里呆了两天。请给我掌舵。

4

3 回答 3

8

问题在于这行代码:

window.setTimeout=( ... );
于 2013-07-23T10:51:16.990 回答
3

你的increment函数有一个错误,有一个=之后window.setTimeout

function increment(){
    if(running==true){

        window.setTimeout(

            function(){
            var mins= Math.floor(timer/600);
            var secs= Math.floor(timer/10);
            var tenths= timer%1000;
            var all= mins+":"+secs+":"+tenths;
            console.log(all);
            increment();
            },100);
    }

}
于 2013-07-23T10:50:52.647 回答
0

setTimeout通常是一个函数,而不是一个变量。您在语句中将其重新分配为值 100;

window.setTimeout=(function(){...}, 100);

下次您尝试调用它时,它不再是一个函数。

于 2013-07-23T11:00:31.677 回答