我想创建一个包装函数,将一些常用配置参数应用于不同的函数,但我不知道如何将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

答案 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');