だから私は説明や2読書にもかかわらず、私を混乱されているコードの一部で探しています:関数式を離れて取る - 数行に苦しん/パラメータ
ここコードだが...
var puzzlers = [
function (a) { return 8*a - 10; },
function (a) { return (a-3) * (a-3) * (a-3); },
function (a) { return a * a + 4; },
function (a) { return a % 5; }
];
var start = 2;
var applyAndEmpty = function (input, queue) {
var length = queue.length;
for (var i = 0; i < length; i++) {
input = queue.shift()(input);
}
return input;
};
alert(applyAndEmpty(start, puzzlers));
内訳は素晴らしいことだ、私はそれの最も理解
しかし、本当に私はこのラインinput = queue.shift()(input);
私は結果を格納するための入力を使用しています知っているが、なぜの始まりと終わりであるboggles何?と最後に入力パラメータがあるのはなぜですか?
PSこの行alert(applyAndEmpty(start, puzzlers));
私は関数を呼び出し、それを警告することを知っています。なぜ私は警告/コンソールログなどの機能を呼び出す必要がありますか?これはIIFEではないので、関数が呼び出されるまで実際に警告することはありませんか?その「オン」ボタンのように?
申し訳ありませんが、これは長いです、事前に感謝!
'queue'が配列され、そして' shift'関数であることを起こるれ、その配列の最初の項目を返し、関数は '(引数)' – adeneo
機能と呼ばれています彼らが呼び出されるまで何もしないでください。 IIFEはすぐに関数を呼び出しますが、名前付き関数は一般に一度定義されるため、異なる入力で繰り返し呼び出すことができます。 – Barmar