setInterval或setTimeout作为调用句柄时不能传参的解决方案
1.采用字符串形式:
setInterval("foo(id)",1000);
2.匿名函数封装(推荐)
setInterval(functionz() {
foo(id);
}, 1000);
3.定义返回无参函数的函数
function foo(id) {
console.log(id);
}
function _foo(id) {
return function() {
foo(id);
}
}
window.setInterval(_foo(id),1000);
4.修改setInterval
function foo(id) {
console.log(id);
}
var _sto = setInterval;
window.setInterval = function(callback, timeout, param) {
var args = Array.prototype.slice.call(arguments, 2);
var _cb = function() {
callback.apply(null,args);
}
_sto(_cb, timeout);
}
window.setInterval(foo, 3000, '2013');

浙公网安备 33010602011771号