如何使用JavaScript实现在指定时间后启用另一个函数

如何使用JavaScript实现在指定时间后启用另一个函数

假设我们已经有了一个函数 add() ,它接受两个参数 ab ,并返回它们的和。我们需要实现一个函数,能够在给定的 延迟 时间后调用任何函数。可以使用以下方法来实现:

方法1:创建 一个函数,该函数接受延迟时间、要调用的函数和参数 列表

示例: 在此方法中,我们将 add() 函数及其参数传递给我们创建的 callAfter() 函数。在给定的 延迟 时间之后, setTimeout() 方法会从callAfter()方法中调用add()函数,并将参数传递给该函数。

JavaScript代码:

<script> 
    function callAfter(delay, myFunct, 
        ...params) { 
        setTimeout(() => { 
            myFunct(...params); 
        }, delay); 
    } 
      
    function add(a, b) { 
        alert("The sum is : " + (a + b)); 
    } 
      
    callAfter(2000, add, 4, 7); 
</script>

输出:

如何使用JavaScript实现在指定时间后启用另一个函数

方法2: 使用匿名函数。

示例: 在某些情况下,您可能希望传递带有参数的函数,但在回调被调用之前不希望它被调用。在这种情况下,您可以将其包装在匿名函数中。

<script> 
    function callAfter(delay, funct) { 
        setTimeout(() => { 
            funct(); 
        }, delay); 
    } 
      
    function add(a, b) { 
        alert("The sum is : " + (a + b)); 
    } 
      
    callAfter(2000, function() { 
        add(4, 7); 
    }); 
</script>

输出:

如何使用JavaScript实现在指定时间后启用另一个函数

方法3:在JavaScript中使用原型: 在这种方法中,我们可以向函数构造函数的原型对象中添加一个方法。这样我们就可以使用 callAfter() 了。

语法:

functionName.callAfter(delay, param1, param2, ....);

示例: 该示例展示了上述解释的方法。

<script> 
    Function.prototype.callAfter = 
        function(delay, ...params) { 
            setTimeout(() => this(...params), delay); 
        }; 
      
    function add(a, b) { 
        alert("The sum is : " + (a + b)); 
    } 
      
    add.callAfter(2000, 4, 7); 
</script>

输出: 在上述所有接近方法中,指定的延迟后显示一个警报消息。

如何使用JavaScript实现在指定时间后启用另一个函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程