在这个问题上,我一直在用头撞墙,但我似乎无法弄清楚。我知道还有很多其他非常相似的问题,我几乎都看过,但似乎没有一个有我正在寻找的答案(但话又说回来,我可能是盲人今天)。
所以我有一个 JavaScript 函数,我将一个函数作为参数传入以执行回调。我的函数中有一个参数,所以当我进行回调时,我传入的参数需要在调用回调时跟进。
但是,当我添加第二个参数时,该值始终未定义。
示例代码:
<div style="padding: 15px;">
<a href ="#" onclick="FirstFunction('first param');">test</a>
</div>
//call the first function from the click event and pass in the value
function FirstFunction(param1) {
//call my process function, but pass in a function as a parameter with the value from param1
myProcessFunction(function(){SecondFunction(param1)});
return false;
}
function SecondFunction(param1, param2) {
alert(param1 + ', ' + param2);
}
function myProcessFunction(callback) {
if (typeof callback == 'function') {
//call my passed in function, return the original values, along with a new value into my "SecondFunction"
callback(this, 'second param');
}
}
任何帮助,将不胜感激。
我试过了:
callback.call(this, 'param 2')
callback(arguments, 'param 2')
callback.call(arguments, 'param 2')
可能还有大约 20 种其他组合......所以我现在在猜测工作。
这是我的jsFiddle:
编辑
谢谢 Jani,这是 jsFiddle 中的一个有效解决方案:http: //jsfiddle.net/FVsDK/9/