我试图找出如何在存储在调用匿名函数的变量中的包装函数上引用参数。例如在下面的例子中。我遇到的问题是我习惯通过参数变量访问参数,但只看到参数myFunc。我知道它应该是可能的,但我无法弄清楚如何。
var myFunc = function(arg1, arg2){//do stuff}
var myFuncWrapped = wrapper(myFunc);
myFuncWrapped('arg value1', 'arg value2');
function wrapper(func){
//how can I reference 'arg value1' from here since arguments == myFunc?
}
答案 0 :(得分:1)
正如评论建议的那样,wrapper
应该返回一个函数,以便在调用myFuncWrapped
时通过closure捕获参数。
var myFunc = function(arg1, arg2) {
console.log(arg1); // (For testing only) Should be"arg value1"
};
var myFuncWrapped = wrapper(myFunc);
myFuncWrapped('arg value1', 'arg value2');
function wrapper(func) {
/* The anonymous function below is actually the one
* being called when you invoke "myFuncWrapped" so it has the arguments you need.
*/
return function() {
console.log(arguments[0]); // (For testing only) Should be"arg value1"
func.apply(this, arguments);
}
}