zoukankan      html  css  js  c++  java
  • Javascript setTimeout 带参数延迟执行 闭包实现

    不是原创,只是 借鉴别人的成果,我在此纪念

    1.htm

    function GetDateT()
    {
    var d,s;
    d = new Date();
    s = d.getFullYear() + "-"; //取年份
    s = s + (d.getMonth() + 1) + "-";//取月份
    s += d.getDate() + " "; //取日期
    s += d.getHours() + ":"; //取小时
    s += d.getMinutes() + ":"; //取分
    s += d.getSeconds(); //取秒

    return(s);

    }

    function Hello(name)

    {

    console.log("welcome"+name+" "+GetDateT() );
    }

    console.log("welcome"+name+" "+GetDateT() );

    setTimeout("hello('张三')",5000);

    //这个执行肯定没有问题,但是效率不高

    //我们可以改进一下,采用闭包

    2.htm


    function GetDateT()
    {
    var d,s;
    d = new Date();
    s = d.getFullYear() + "-"; //取年份
    s = s + (d.getMonth() + 1) + "-";//取月份
    s += d.getDate() + " "; //取日期
    s += d.getHours() + ":"; //取小时
    s += d.getMinutes() + ":"; //取分
    s += d.getSeconds(); //取秒

    return(s);

    }
     
    function Hello2(name)
    {
    console.log("welcome "+name+" "+GetDateT() );
    }
    function _Hello2(name)
    {
    return function()
    {
    return Hello2(name);
    };
    }
    console.log(GetDateT() );
     //_Hello2("张") 是立即执行了,但是它的结果仅返回一个 函数指针,指向Hello2,所以 hello2并没有立即执行(闭包的作用就是扩大的 name变量的作用域)
    window.setTimeout(_Hello2("张"),5000);

  • 相关阅读:
    java中的变量
    小程序获取设备信息
    小游戏学习1
    live-server
    Babel安装在本地并用webstrom由ES6转Es5
    测试目录
    使用Java模拟一个简单的Dos学生成绩管理系统:
    RabbitMQ——开源稳定的消息队列
    wpf读写app.config中的数据
    C# Arc Gis实例教程——网络链接
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/4941794.html
Copyright © 2011-2022 走看看