1. 程式人生 > >javscript setTimeout有參回撥方法

javscript setTimeout有參回撥方法

setTimeout傳遞的第一個引數為: 

1.無參的方法:如function test(){},則可直接通過setTimeout(test,1000)呼叫,還可以setTimeout("test()",1000)呼叫。

2.如果方法接收引數:

    (1) 如果都是字串形式的引數,如:function test(param){} ,可使用字串拼接傳遞引數setTimeout("test('" + myParam + "')",1000)。

    (2) 如果非字串引數,這時可以通過使用function返回一個無參的函式進行呼叫,如:

function test(obj) {
    return function()
    {
        obj.style.color = "red";
    }
} 

呼叫: setTimeout(test(this),1000);

第(2)種方法也可以適應第(1)種情況,所以建議大家用第(2)種方法。

如果你的test方法為: 

function test(obj) {
    obj.style.color="red";
}

此時是無法通過setTimeout(test(this),1000);呼叫的,會提示指令碼出錯。