小编Hem*_*ora的帖子

通过“function_name.callAfter(ms, param1, param2, ...)”形式的调用延迟执行任何现有函数

我最近收到一个面试问题,我没能正确回答。它是这样的:

编写一个函数的实现,该函数callAfter可以在某个指定的持续时间后调用任何函数。函数的输出应该保持不变。该函数应具有 > 以下语法:

示例 1:假设您有一个sum这样调用的函数:

function sum(a, b) {
 console.log('Sum is: ', a + b);
}
Run Code Online (Sandbox Code Playgroud)

现在你应该能够执行:

sum.callAfter(5000, 8, 9);
Run Code Online (Sandbox Code Playgroud)

这应该会sum在 5 秒后使用参数 8 和 9调用该函数。输出:'Sum is: 17'。

示例 2:对于difference具有以下实现的函数:

function difference(a, b) {
  console.log('Difference is: ', a-b);
}
Run Code Online (Sandbox Code Playgroud)

您应该能够执行:

difference.callAfter(4000, 8, 6);
Run Code Online (Sandbox Code Playgroud)

这应该会difference在 4 秒后使用参数 8 和 6调用该函数。输出:'Difference is: 2'。

注意:我知道我可以在 n 秒后使用以下方法执行一个函数:

var delay_func = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout (timer); …
Run Code Online (Sandbox Code Playgroud)

javascript delay delayed-execution

0
推荐指数
1
解决办法
95
查看次数

标签 统计

delay ×1

delayed-execution ×1

javascript ×1