zoukankan      html  css  js  c++  java
  • setTimeout 延时调用

    var cainiao= {
       name:'小马',
       gender : '男',
       showInfo : function(){
    var str = '姓名:' +  this.name ;
        str+=  ',性别:' + this.gender;
       alert(str);
    }
    }
    cainiao.showInfo();

    如果要写一个方法,来实现showInfo的延时调用

    var cainiao= {
       name:'小马',
       gender : '男',
       showInfo : function(){
    var str = '姓名:' +  this.name ;
        str+=  ',性别:' + this.gender;
        alert(str);
       },
       delayInfo: function(){
          // setTimeout('alert(this.cainiao.name)',1000);//正确
        setTimeout('this.cainiao.showInfo()',1000);// 正确
    //setTimeout('this.showInfo()',1000);//  错误
      }  
    }
    cainiao.delayInfo();
    //上面是对象实例


    //下面是构造函数
    window.objTimeoutFuncs  = [];
    window.objTimeoutIds =  [];
    function  objTimeout(obj,func,time,id){
    window.objTimeoutFuncs[id] = function(){
      func.call(obj);
    };
    window.objTimeoutIds[id] =  setTimeout('objTimeoutFuncs[\''+ id +'\']()',time);
    }
    function  clearObjTimeout(id){
    clearTimeout(window.objTimeoutIds[id]);
    }
    function  Person(name_,gender_){
    this.name = name_;
    this.gender = gender_;
    this.showInfo = function(){
      var str = '姓名:' +  this.name ;
      str+=  ',性别:' + this.gender;
      alert(str );
    };
    this.delayInfo = function(){
    objTimeout(this,this.showInfo,2000,this.name);//
      //setTimeout("this.showInfo()",1000);//出错
      //setTimeout.call(this,'this.showInfo()',1000);//出错
    };
    }
    var p1=new Person("小马","男");
    p1.delayInfo();

  • 相关阅读:
    HDOJ 5347 MZL's chemistry 【打表】
    自定义轮播图插件
    Twitter Bootstrap:前端框架利器
    左边定宽,右边自适应两列布局
    JS 断点调试心得
    关于将多个json对象添加到数组中的测试
    普通选项卡+自动播放功能+向前/向后按钮 原生js
    线程队列、事件以及协程
    GIL锁、进程池与线程池、同步异步
    JoinableQueue类与线程
  • 原文地址:https://www.cnblogs.com/oneroom/p/settimeoutDelayCall.html
Copyright © 2011-2022 走看看