私は昨夜から午前中にかけて第 5 章を読み通しましたが、高階関数の概念が定着していないようです。例を次に示します。 //この最初の関数は理解しています。次の関数で使用されるため、含めます。
function forEach(array, action) {
for (vari = 0; i < array.length; i++)
action(array[i]);
}
forEach(["Wampeter", "Foma", "Granfalloon"], print);
function sum(numbers) {
var total = 0;
forEach(numbers, function(number) {
total += number;
});
return total;
}
私の理解では、関数 sum は引数の数値を取っていますが、これは配列として入ってくると思いますか? さて、forEach 関数が (sum 内で) 呼び出されると、sum に渡された配列番号を取得し、さらに無名関数も取得しますか?
この匿名関数が実際に何をしているのか、私は本当に混乱しています。パラメータ番号を取得していますが、他に何をしていますか? この匿名関数は、そのパラメーターで、print や show などの関数にパラメーター番号が渡されることを意味しますか? つまり、次のようになります
function([10,12,11]) {
var total = 0
forEach([10,12,11]), show(???)
//at this point it would iterate over the array, and use the action passed to display `//the pointer in the array. What I think is happening is that it is taking this pointer value and adding it to the total.` //
私はしばらくの間、この例に頭を悩ませようとしてきました。誰かが良い説明や他のドキュメントを読んで知っているなら、私はそれを大いに感謝します、ありがとう!