zoukankan      html  css  js  c++  java
  • js函数只触发一次

     如何让js中的函数只被执行一次?我们有时候会有这种需求,即让一个函数只执行一次,第二次调用不会返回任何有价值的值,也不会报错。下面将通过三个小demo展示使用的方法,当做个人笔记。

    1.通过闭包来实现。

     <script>
            window.onload = function () {
    
    
                function once(fn) { 
                    var result;
                
                  return  function() { 
                        if(fn) {
                            result = fn.apply(this, arguments);
                            fn = null;
                        }
                        return result;
                    };
                }
                
                var callOnce = once(function() {
                    console.log('javascript');
                });
                
                callOnce(); // javascript
                callOnce(); // null
            }
        </script>

    2.第一次调用后,把func函数值空。func= function(){};

      <script>
            var func = function () {
                alert("正常调用");
                func= function(){};
            }
            func();
            func();
        </script>

    3.设置一个值,通过boolean来控制后面的调用。flag

     <script>
            window.onload = function () {
                var flag = true;
    
                function once() {
                    if (flag) {
                        alert("我被调用");
                        flag = false;
                    } else {
                        return;
                    }
                }
                once();
                once();
            }
        </script>
  • 相关阅读:
    Linux的网络配置
    Linux进程
    我需要的电脑配置
    spring注解配置
    spring中集合的配置
    getProperty()方法的参数和用途
    树的遍历
    单词变换
    最短路径dijkstra算法
    文件路径
  • 原文地址:https://www.cnblogs.com/qdjl/p/10328044.html
Copyright © 2011-2022 走看看