這是我在我的JavaScript學習跌跌撞撞最奇怪的行爲之一,JavaScript如何處理嵌套函數中的參數?
這是例子:
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// → 10
這是一本書Eloquent JavaScript採取的一個例子,筆者在解釋它令人困惑的方式,這使得它更奇怪:
在這個例子中,乘法器返回一個凍結的代碼塊,獲取 存儲在兩倍變量。最後一行然後調用 這個變量的值,導致激活凍結的代碼(返回數字*因子;)爲 。它仍然可以從創建它的 乘數調用中訪問因子變量,並且還可以訪問在解凍時通過的參數 ,通過參數 參數5。
誰能解釋multiplier
功能的twice()
第二個電話是如何分配的參數的嵌套函數,以及如果有更多的嵌套函數是,是什麼概念,這個規則?
你曾經使用C玩過嗎? – leaf