私はArray.prototype.forEachを使用し、コールバックを渡す関数を持っています。そのコールバックを別の関数に抽出してテストできるようにしたいと思います。問題は、コールバックが外部関数のパラメータを使用し、コールバックのシグネチャがもちろんArray.prototype.forEachによって決定され、私はそれを変更できないということです。私はこのコールバックを取り出すことができますか?コードサンプルは以下の通りです。いくつかの変数をクローズする匿名コールバックの抽出方法?
var enableMarks = function (arrEvents, arrGeneratedEvents) {
var marksLength = arrEvents[0].marks().length;
var generatedMark;
var i;
for (i = 0; i < arrGeneratedEvents.length; i++) {
programEvents.forEach(function (programEvent) {
if (programEvent.pairOrderToShow === arrGeneratedEvents[i]) {
generatedMark = generateNumber(0, marksLength - 1);
}
//some other code here, not important for question
});
}
}
私のコールバックでは、外部関数からのarrGeneratedEventsが使用されており、何らかの理由でこれを抽出されたコールバックに渡すことが可能かどうかはわかりません。
私はそれがうまくいくかどうかはわかりません。 'testFun(elem to pass)'は関数型に評価されません(そして 'forEach'は関数型が必要です)。 –
@OliverCharlesworth私はここに与えられた最初の例を参照していました https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach – brk
そこには例がありません関数型を 'forEach'に渡しません;) –