私はこれについて少しの間壁に頭をぶつけてきました、そして私はそれを完全に理解することができないようです。他にも非常によく似た質問がたくさんあることを私は知っています、そして私はそれらのほぼすべてを見てきました、そしてそれらのどれも私が探している答えを持っていないようです(しかし、再び、私は盲目になる可能性があります今日)。
そのため、コールバックを実行するためのパラメーターとして関数を渡すJavaScript関数があります。関数にはパラメーターが含まれているため、コールバックを実行するときは、コールバックが呼び出されたときに渡すパラメーターをフォロースルーする必要があります。
ただし、2番目のパラメーターを追加すると、値は常に未定義になります。
サンプルコード:
<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/