包装函数,用于将常用配置传递给另一个函数

时间:2016-06-24 15:16:34

标签: javascript

我想创建一个包装函数,将一些常用配置参数应用于不同的函数,但我不知道如何将var config添加到fn函数中。到目前为止,这是我的代码:



function addConfig(val, fn) {
  var config = { value: val };
  
  return function() {
    var args = Array.prototype.slice.call(arguments);
    args.push(config);
    return fn.apply(this, args)
  }
}

function test(id, name, config) {
  console.log(arguments);
}

addConfig('a', test(1, 'bill')); // Does not log out config object




1 个答案:

答案 0 :(得分:1)

你的括号错了。您必须调用addConfig而不是test返回的函数:



function addConfig(val, fn) {
  var config = { value: val };
  return function() {
    var args = Array.prototype.slice.call(arguments);
    args.push(config);
    return fn.apply(this, args)
  }
}

function test(id, name, config) {
  console.log(arguments);
}

addConfig('a', test)(1, 'bill');