函数 'callAfter' 的实现,可以在指定的持续时间后调用任何函数

Implementation for a function 'callAfter' that enables any function to be called after some specified duration

编辑:这不是如何在 setTimeout 中传递参数的副本。实际上,我想知道如何编写一个像 setTimeout API.

一样在预定义函数上作为方法调用的函数

那么,我如何为函数 'callAfter' 编写一个实现,使任何函数都可以在指定的持续时间后使用某些参数调用,语法如下:

示例:假设您有一个名为 'sum' 的函数,如下所示:

function sum(a, b) {
 console.log('Sum is: ', a + b);
}

现在您应该能够执行: sum.callAfter(5000, 8, 9);

应该在 5 秒后使用参数 8 和 9 调用函数 'sum'。

使用函数原型制作得到它:

Function.prototype.callAfter = function(){
    if(arguments.length > 1){
        var args = Array.prototype.slice.call(arguments);
        var time = args.splice(0,1);
        var func = this;
        setTimeout(function(){
            func.apply(null, args);
        }, time);
    }

}