• setTimeout与setInterval


    setTimeout与setInterval这两个方法都会返回一个数字,这串数字就是它们的名字,通过获取这个名字就可以利用clearInterval和clearTimeout来清除对应的定时器:

    如图所示,可以将7789这个编号传给clearInterval来清除定时器。

     这两个方法都可传三个参数:

    setInterval与setTimeout对第一个参数的解析都是采用的eval()函数,在IE中如果第一个参数不是函数或字符串则会报错:

     图中setTimeout(fn(2),100)虽然传的是一个函数,但是一个立即执行的函数,所以实际传进去的是2,2并不是字符也不是函数,所以报错,第二句中传入的“fn(2)”才被解析成fn(2);

    对于IE9-不能传参可以通过apply或call的方式传参:

    所以可以这样重写:

        var __sto = setInterval;     //获取原本的setInterval方法
        window.setInterval = function(callback,timeout,param){
            console.log(callback);     
            var args = Array.prototype.slice.call(arguments,2);     
            var _cb = function(){     
                callback.apply(null,args);     //以apply向原setInterval中传参
            }     
            __sto(_cb,timeout);     
        }

  • 相关阅读:
    1203 forms组件
    1128 聚合查询 orm字段及属性
    1127 模型层orm表操作
    1126 视图层与模板层
    1122 django中orm操作
    1121 Django操作
    1125 视图层
    搭建并行开发环境MPICH2
    Linpack之HPL测试 (HPL Benchmark)
    安装NetCDF及HDF5
  • 原文地址:https://www.cnblogs.com/cjw-ryh/p/7743036.html
Copyright © 2020-2023  润新知