0
私は次のようにします。この関数のスタックはどのように見えますか?
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
alert(addTwo(1) + addFive(1));
がmakeAddFunction
の各インスタンスが別々のスタックを持っているのでしょうか、それらのすべてが同じスタックを使うのでしょうか?スタックに入ったり出る変数の順序は重要ですか?
'makeAddFunction'のインスタンスは1つだけです。あなたはそれにそれぞれの呼び出しを意味するのですか? – sje397
@ sje397これらは2つの異なるインスタンスではありませんか?どのようにして同じ変数の2つの異なる値を保持できますか? – ilyo
'add'と呼ばれる関数の2つのインスタンスがあり、' makeAddFunction'の1つのインスタンスへの呼び出しから返されます。変数はそれらの参照を格納します。 – sje397