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

请输入您要查询的考试资料:

 

标题 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/18 17:50:03