我是一名自學前端網頁開發的平面設計師。我完成了關於HTML和CSS的全部閱讀。現在我正在閱讀有關JavaScript的文章,特別是Marijn Haverbeke(2011)的一本名爲Eloquent JavaScript的書。在功能關閉的話題,他給出了這樣的例子,不多解釋:在JavaScript中的一個參數中強制使用兩個值?
function makeAdder(amount) {
return function(number) {
return number + amount;
};
}
var addTwo = makeAdder(2);
addTwo(3);
-> 5
我不明白這裏是可變number
如何給出一個值,當它是一個匿名函數function(number)
內的體內功能makeAdder()
。 makeAdder()
函數只接受一個參數amount
。這在makeAdder(2)
中給出值「2」,是一個可變定義addTwo
。
但後來變量addTwo
被執行,就好像它是一個函數,並給出了不同的值3.現在真正奇怪的是,如何賦予addTwo
函數3的值在某種程度上被用於嵌套函數體number + amount
用於可變number
,與量的(2),最後用的5
基本上,當調用'makeAdder(2)'時,它只是返回一個新函數,該函數知道_amount_(設爲2)的值。然後用3作爲參數調用新創建的函數。此時'addTwo'可以和_number + amount_(3 + 2)。 如果你在不帶參數的情況下調用'makeAdder()',那麼當你嘗試'addTwo(3)'時,它將返回'NaN',因爲'addTwo'的_amount_的值爲'undefined'(_3_ + _undefined_ = _NaN_)。 – aUXcoder