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();

  • 相关阅读:
    三.装饰器函数
    二.函数进阶
    生成器
    一个列表实现__iter__和__next__方法的例子
    可迭代对象和迭代器
    asyncio模块实现线程的嵌套和穿插
    线程的阻塞
    利用collections下的counter实现对列表重复元素的查重
    queue的一些用法
    利用python deque的extend特性实现列表元素查重
  • 原文地址:https://www.cnblogs.com/oneroom/p/settimeoutDelayCall.html
Copyright © 2011-2022 走看看