关于setTimeout/setInterval的第三个参数
setTimeout/setInterval,这两个函数相信前端开发同学都很熟悉。
它们在非IE(6-9)浏览器中还可以如下使用
1 2 3 | setTimeout(function(obj){ alert(obj.a); }, 2000, {a:1}); |
用法:
1 2 3 4 5 6 | var arr = [1,9,2,8,3,7,4,6,4,5]; for(var i = 0, len = arr.length; i < len; i++){ setTimeout(function(x){ console.log(x); },arr[i],arr[i]); } |
你可以传多个参数给回调函数,如下
1 2 3 4 | setTimeout(function(a, b){ alert(a); alert(b); }, 2000, 1,2); |
如果有第三个参数,某些情况下的调用就可以方便的处理回调函数中当前对象的问题,写起来好看点。
扩展一下Function,增加一个延时调用(参考而已):
1 2 3 4 5 6 7 8 9 10 | Function.prototype.delay = function(){ var args = Array.prototype.slice.call(arguments,0); setTimeout(function(fn){ fn.apply('',args.slice(1)); },args[0],this); } var fn = function(x){ alert(x) }; fn.delay(1000,'xesam'); |
关于回调模拟进度条的例子:
代码预览
php获取服务器端mac和客户端mac的地址 SQL Server数据库中批量替换数据的方法