こんにちはantwoord
を
opleidingArray.forEach(haalScoresOp、antwoord);
だから私はそれを
HaalScoresOp
関数。これを機能させることができません。私もバインディングを試しましたが、これは機能しません。
Antwoordはエラーとして定義されていません。
var antwoordenPerVraag = [2,1,3];
console.log(VragenEnScores.vragen[0].opleidingen[0]);
antwoordenPerVraag.forEach(berekenEindresultaten);
function berekenEindresultaten(item, index) {
var opleidingArray = VragenEnScores.vragen[index].opleidingen;
var antwoord = "bla";
opleidingArray.forEach(haalScoresOp, antwoord);
// score nog doorgeven aan haalscores op = het item
}
function haalScoresOp(item, index) {
console.log("haal score op voor");
console.log(item.naam);
console.log(item.scores);
console.log("haal antwoord op");
console.log(antwoord);
}
antwoord
内でhaalScoresOp
を参照している方法は、無効/無意味/不適切です。スコープ内の変数であるかのように参照しています…そうではありません。関数は、他のパラメーターと同様に、パラメーターとしてそれを受け入れる必要があります。
function haalScoresOp(antwoord, item, index) {
..
console.log(antwoord);
}
次に、それを発信者側で渡すことができます。
opleidingArray.forEach(function (item, index) {
haalScoresOp(antwoord, item, index)
});
または:
opleidingArray.forEach(haalScoresOp.bind(null, antwoord));
あなたは単に使うことができます:
opleidingArray.forEach(haalScoresOp, antwoord);
次のようにhaalScoresOp関数内のantwoordを参照してください:
function haalScoresOp(){
var diantwoord = this.valueOf();
}
antwoordは 'this'オブジェクトとして型に関する関数に渡されます
haalScoresOp
関数をberekenEindresultaten
関数内の無名関数に変更できます。
var antwoordenPerVraag = [2,1,3];
console.log(VragenEnScores.vragen[0].opleidingen[0]);
antwoordenPerVraag.forEach(berekenEindresultaten);
function berekenEindresultaten(item, index) {
var opleidingArray = VragenEnScores.vragen[index].opleidingen;
var antwoord = "bla";
opleidingArray.forEach(function(item, index){
// score nog doorgeven aan haalscores op = het item
console.log("haal score op voor");
console.log(item.naam);
console.log(item.scores);
console.log("haal antwoord op");
console.log(antwoord);
});
}
これにより、antwoord
変数のスコープがberekenEindresultaten
関数内に保持されます