zoukankan      html  css  js  c++  java
  • js 如何给回调函数传参

    简单的同步输出

    先看一个例子

    for(var i=0;i<5;i++){
       console.log(i)
    }
    

    这个代码很简单,会输出01234

    image-20210303135432161

    加上setTimeout

    那如果加上setTimeout呢,例

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

    执行结果就会变成这样

    image-20210303135734240

    输出55555,聪明如你 你会想到是因为异步回调的原因

    这时候我想让这个回调函数里面的跟前面一样怎么办呢?

    闭包保存变量

    如果需要保持setTimeout打印正确的值,那就需要闭包了

    例:

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

    结果如图

    image-20210303141404797

  • 相关阅读:
    SqlDataAdapter 类
    新博开
    gcc编译C++程序

    抖动
    css3 导航效果
    javascript判断IE浏览器的版本
    CSS样式表继承详解
    css选择器
    鼠标样式
  • 原文地址:https://www.cnblogs.com/makalochen/p/14474186.html
Copyright © 2011-2022 走看看