• 这是一个错误的观点! 2019-10-04
  • (两会受权发布)中华人民共和国国家监察委员会主任简历 2019-10-04
  • 吴秀波海外购房疑重婚 工作室:一同购房者系原配 2019-09-15
  • 图解:关于世界杯开幕式的那点事 2019-09-15
  • 习近平作报告全场71次掌声 此处最密、此处最长(附原音) 2019-09-13
  • 河北人注意:外地车进京证每年限办12次每次最长7天 2019-08-15
  • 杨紫:“欢乐颂”里的那些姐妹故事 2019-08-06
  • “向党献礼 忠诚保畅” 交警铁骑队正式亮相宜春(多图) 2019-08-06
  • 女子有才也是德,京城何时有女子学校? 2019-07-25
  • 一加手机5【报价 图片 参数 评测】 2019-07-25
  • 首师大附属实验中学的“小小农场主” 2019-07-23
  • 珍视智慧和成熟这笔财富(环球走笔) 2019-07-15
  • 金参考|GDPR:体现欧盟“数字领袖”雄心 或直接冲击中企 2019-07-03
  • 坚决维护习近平总书记核心地位br维护党中央权威和集中统一领导 2019-07-03
  • 我国纳米核心技术取得重大突破 2019-06-28
  • 柏林赫塔对杜塞尔:setTimeout的第三个参数你可能不知道的作用

    2019-08-16        63

    德国柏林赫塔 www.mguj.net 说起来你可能不相信,setTimeout居然有第三个参数,我以前也没用过这个,但最近看到一个代码解决了for循环里面加入了setTimeout的例子,下面一起看看这个setTimeout第三个参数。

    for(var i = 0; i<6; i++){    setTimeout(function(){        console.log(i);    },1000);}

    看到上面的这个for例子,相信很多人都能脱口而出,它会连续输出6次6,因为setTimeout是一个异步操作,而等到执行setTimeout时,for循环已经执行完毕,这时的i已经等于6,所以输出6次的6。

    闭包

    那么怎么改呢?说说最常见的改法就是使用闭包。

    for(var i=0; i<6; i++){    (function(j){        setTimeout(function(){            console.log(j);        },j*1000);    })(i);}

    通过闭包,将i的变量驻留在内存中,当输出j时,引用的是外部函数A的变量值i,i的值是根据循环来的,执行setTimeout时已经确定了里面的的输出了。

    函数传参

    还有一种就是给setTimeout添加第三个参数。

    for(var i=0;i<6;i++){    setTimeout(function(j){        console.log(j);    },i*1000,i);}

    由于每次传入的参数是从for循环里面取到的值,所以会依次输出0~5。

    看了上面的代码,相信你对这个setTimeout的第三个参数作用大概了解了,是的,它就是给setTimeout个函数的参数。

    翻一下MSDN文档,里面确实有记录setTimeout第三个及后面的参数的。下面我们来看看这个代码

    function sum(x,y,z){    console.log(x+y+z);}setTimeout(sum,1000,1,2,3);

    上面第二行打印出了6,1+2+3=6(11是setTimeout timeId)。

    可以看出,第三个及以后的参数都可以作为sum函数的参数。

    第三个参数作为函数
    var i=0;setTimeout(function(){    console.log('第二次'+i)},3000,setTimeout(function(){    console.log('次'+i);    i++;},1000));

    最后依次输出为 次0 第二次1

    可以看到第三个参数还可以是先执行,然后再执行函数。

    今天就到这里了,有没有get到这个点,我翻了之前自己写过的关于setTimeout和setInterval的相关文章,都没有谈到第三个参数的,中文的w3c教程也没看到。

    利用好setTimeout的第三个参数,有时候会有意向不到的收获。希望这篇文章对你有所帮助。


    AM 09:00 ~ 12:00

    PM 14:00 ~ 18:00

    Tel 010-50933590

    Hp 18910140161

    设计优势

    独立的设计团队 带给您全新的视觉体验

    功能开发

    强大的技术实力,完成您想要的任何功能

    售后服务

    完善的售后服务,解决您在使用过程中遇到的问题

  • 这是一个错误的观点! 2019-10-04
  • (两会受权发布)中华人民共和国国家监察委员会主任简历 2019-10-04
  • 吴秀波海外购房疑重婚 工作室:一同购房者系原配 2019-09-15
  • 图解:关于世界杯开幕式的那点事 2019-09-15
  • 习近平作报告全场71次掌声 此处最密、此处最长(附原音) 2019-09-13
  • 河北人注意:外地车进京证每年限办12次每次最长7天 2019-08-15
  • 杨紫:“欢乐颂”里的那些姐妹故事 2019-08-06
  • “向党献礼 忠诚保畅” 交警铁骑队正式亮相宜春(多图) 2019-08-06
  • 女子有才也是德,京城何时有女子学校? 2019-07-25
  • 一加手机5【报价 图片 参数 评测】 2019-07-25
  • 首师大附属实验中学的“小小农场主” 2019-07-23
  • 珍视智慧和成熟这笔财富(环球走笔) 2019-07-15
  • 金参考|GDPR:体现欧盟“数字领袖”雄心 或直接冲击中企 2019-07-03
  • 坚决维护习近平总书记核心地位br维护党中央权威和集中统一领导 2019-07-03
  • 我国纳米核心技术取得重大突破 2019-06-28
  • 天天时时彩人工计划 蝌蚪官方网 波音平台线上娱乐网址 内马尔达席尔瓦 欢乐生肖开奖历史号码 新强时时彩三星和值走势图 信汇平台登陆 重庆时时历史开奖记录 猜大小单双技巧 mg线上娱乐游戏 七星彩论坛_808彩票网 重庆时时彩到底有多假 文山龙城国际娱乐会所 澳客彩票网 抢庄斗牛牛 北京极速pk赛车官网