首页 > web前端 > js教程 > 正文

如何在 JavaScript 中构建一个只执行一次的函数?

Susan Sarandon
发布: 2024-10-22 23:14:29
原创
951 人浏览过

How to Build a Function in JavaScript That Executes Only Once?

如何在 JavaScript 中创建只能执行一次的函数

JavaScript 本质上并没有提供一种方法来创建只能执行一次的函数运行一次。然而,有一些使用闭包和第三方库的优雅解决方案。

闭包方法:

闭包创建一个私有作用域,可以由它包含的函数访问。在此范围内,可以设置一个标志来指示该函数是否已执行。以下代码演示了这种方法:

<code class="javascript">var something = (function() {
    var executed = false;
    return function() {
        if (!executed) {
            executed = true;
            // do something
        }
    };
})();</code>
登录后复制

第一次调用 Something() 会调用该函数并将执行设置为 true。后续调用将无效,因为执行仍然为 true。

第三方库方法:

像 Underscore 和 Ramda 这样的库提供了一个 Once() 函数,它包装了提供的函数并确保它只运行一次。

<code class="javascript">// Using Underscore
var one_something = _.once(something);

// Using Ramda
const one_something = R.once(something);</code>
登录后复制

返回的函数可以调用多次,但底层函数只会运行第一次。

创建函数的实用程序-时间函数:

如果您不使用库,您可以创建自定义实用函数。一种方法是:

<code class="javascript">function once(fn, context) { 
    var result;
    return function() { 
        if (fn) {
            result = fn.apply(context || this, arguments);
            fn = null;
        }
        return result;
    };
}</code>
登录后复制

此函数接受一个函数和一个可选的上下文。它返回一个函数,该函数在第一次调用时执行原始函数并返回结果。后续调用没有任何效果。

以上是如何在 JavaScript 中构建一个只执行一次的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!