setTimeout还有第三个参数】的更多相关文章

今天才发现setTimeout还有第三个参数. for (var i = 0; i< 10; i++){ setTimeout((i) => { console.log(i); }, 1000,i) }…
最熟悉的地方,往往会忽略一些细节.就比如 setTimeout 函数,做前端开发的同学都会很熟悉这个函数,经常使用这个函数,但是知道这个函数还有第三个参数的小伙伴可能就不多了.起码我在阅读阮老师的 es6 之前是不知道的.阮老师的es6的primise章节里有这样一段代码. function timeout(ms) { return new Promise((resolve, reject) => { setTimeout(resolve, ms, 'done'); }); } timeout(…
setTimeout第三个参数,可以作为setTimeout延时执行函数的传入参数使用,利用这个设定,我们可以将要延时改变状态的对象传入,变相改变setTimeout的作用对象:这里setTimeout的第三个参数主要得到了除IE外的系列浏览器的支持 一个有趣的例子 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…
好吧,假设你们都是从 ES6 里 promise 发现 setTimeout 还有第三个参数的,下面讲讲到底是干嘛的 setTimeout 第三个及之后的参数作用:定时器启动时候,第三个以后的参数是作为第一个fn()的参数传进去. // setTImeout 第三个及以后参数是作为第一个函数 fn 的参数传入 setTimeout(fn, 1000, 1, 2) function fn (x, y) { console.log(x, y) } // 输出 1,2…
今天看阮一峰老师的ES6入门,在一个关于promise的小demo里,老师用到了setTimeout的第三个参数,惊了有没有,定时器还有第三个参数? 喏就是下面这个demo: function timeout(ms) { return new Promise((resolve,reject) =>{setTimeout(resolve,ms,'done');}); } timeout(100).then((value) => {console.log(value);}); 然后查了一下,set…
你不知道的setTimout第三个参数 说起setTimeout,各位再熟悉不过,用法也很简单:setTimeout(fun, delay). 但说起来你可能不信,用了这么多年的setTimeout居然有第三个参数.下面一起看看这个setTimeout第三个参数. 我们先来看一段简单的代码: setTimeout(function(x) { console.log(x); }, 1000, 1); 控制台输出1,那么能不能继续加参数呢?我们继续来看下面这段代码: setTimeout(funct…
一.最近在看promise,惊奇的发现:原来 setTimeout不只有两个参数,我还能说什么呢?赶紧探探究竟. function multiply(input) { return new Promise(function (resolve, reject) { log('calculating ' + input + ' x ' + input + '...'); setTimeout(resolve, 500, input * input); }); } 二.定义 扒了一下MDN,果然有定义…
setTimeout跟setInterval大家应该都很熟悉的,但是一直很少注意,原来这两个函数可以支持第三个参数的,但是IE就呵呵了,仅IE(6-9)呵呵了,其他浏览器都支持的。 第三个参数将作为回调函数的参数obj传入,例子如下: setTimeout(function(obj){ alert(obj.a) },1000,{a:1}) 在非IE6-9下可以正常执行…
用法是会用,但是之前一直以为接函数的 var a = setInterval(function(){},1000) 比如a是函数名,最近才发现它是一个ID, var intervalID = window.setInterval(code, delay); intervalID是你想要取消的重复动作的ID,这个ID是个整数,是由setInterval()返回的. 后续补充:setTimeout()可以有第三个参数 setTimeout(fn,delay,param1,param2....) 第三…
在廖雪峰大神的官方网站看nodejs的时候,发现自己对Promise函数不甚了解,于是转去看Promise函数,看到了这段代码: function multiply(input) { return new Promise(function (resolve, reject) { log('calculating ' + input + ' x ' + input + '...'); setTimeout(resolve, 500, input * input); }); } setTimeout…