调用时如何将未知的其他参数传递给回调函数?

时间:2019-01-05 00:38:07

标签: javascript

等待毫秒后调用func。调用功能时,会向func提供任何其他参数

我想不出一种将未定义数量的附加参数传递给回调函数的好方法。有什么建议吗?

function delay(func, wait) {
    return setTimeout(func, wait);
}
// func will run after wait millisec delay

// Example
delay(hello, 100);
delay(hello, 100, 'joe', 'mary'); // 'joe' and 'mary' will be passed to hello function

1 个答案:

答案 0 :(得分:3)

这样定义延迟时间

function delay(fn, ms) {
  var args = [].slice.call(arguments, 2);

  return setTimeout(function() {
    func.apply(Object.create(null), args);
  }, ms);
}

或者如果您是ES6 / 7风扇

function delay(fn, ms, ...args) {
  return setTimeout(function() {
    func.apply(Object.create(null), args);
  }, ms);
}