我正在讀能言善辯JS和尋找澄清這一段代碼:分配給在Javascript變量函數的附加參數受封
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// → 10
我瞭解封概念,但我被卡在最後一行中的方式是twice(5)
。 Eloquent JS says:
「在這個例子中,乘數返回一個被凍結的代碼塊,它存儲在兩次變量中,最後一行然後調用這個變量的值,導致凍結代碼(返回數字*因子;)它仍然可以從創建它的乘法器調用中訪問因子變量,此外它還可以訪問通過其數字參數解凍時通過的參數5。「
是」額外的訪問「的論點5
當解凍關閉功能時通過?當兩次是一個變量時,這是如何工作的?
返回的唯一的事情就是裏面是什麼返回關鍵字後函數的大括號。 – Kunok
@Kunok,不僅。它也可以訪問「因素」。 –
是的,它返回表達式:'number * factor'。你可以把它看成一個單一的東西,因爲一旦它被執行,它就是一個單一的值,一個表達式的結果。 – Kunok