javscript setTimeout有參回撥方法
阿新 • • 發佈:2018-12-16
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);呼叫的,會提示指令碼出錯。