网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 js只执行1次的函数示例
范文
    在我们日常开发的时候,经常会碰到一种这样的情况:想让某个函数只执行一次,特别是在一些循环或定时执行的时候。
    直接上代码:
    function runOnce(fn, context) { //控制让函数只触发一次
      return function () {
        try {
          fn.apply(context || this, arguments);
        }
        catch (e) {
          console.error(e);//一般可以注释掉这行
        }
        finally {
          fn = null;
        }
      }
    }
    // Usage 1:
    var a = 0;
    var canOnlyFireOnce = runOnce(function () {
      a++;
      console.log(a);
    });
    canOnlyFireOnce(); //1
    canOnlyFireOnce(); // nothing
    canOnlyFireOnce(); // nothing
    // Usage 2:
    var name = "张三";
    var canOnlyFireOnce = runOnce(function () {
      console.log("你好" + this.name);
    });
    canOnlyFireOnce(); //你好张三
    canOnlyFireOnce(); // nothing
    // Usage 3:
    var obj = {name: "天涯孤雁", age: 24};
    var canOnlyFireOnce = runOnce(function () {
      console.log("你好" + this.name);
    }, obj);
    canOnlyFireOnce(); //你好天涯孤雁
    canOnlyFireOnce(); // nothing
    因为返回函数执行一次后,fn = null将其设置未null,所以后面就不会执行了。再贴一个网上别人分享的代码,道理一样的:
    function once(fn, context) { 
      var result;
      return function() { 
        if(fn) {
          result = fn.apply(context || this, arguments);
          fn = null;
        }
        return result;
      };
    }
    // Usage
    var canOnlyFireOnce = once(function() {
      console.log('Fired!');
    });
    canOnlyFireOnce(); // "Fired!"
    canOnlyFireOnce(); // nothing
    以上就是为大家整理让javascript只执行一次的函数示例,有需要的可以参考。
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 23:42:18