2014-11-06 33 views
2

我讀通過雄辯Javascript和看到這個功能:該功能如何在不設置參數的情況下工作?

function multiplier(factor) { 
    return function(number) { 
    return number * factor; 
    }; 
} 

var twice = multiplier(2); 
console.log(twice(5)); 
// → 10 

不過,我沒有把握內在功能是如何分配的變量(5)的數量參數?雄辯的JS試圖解釋它,但我沒有得到它。

+1

執行此行後'var twice = multiplier(2);',Twice是一個函數。 '兩次=功能(號碼){ 返回號碼* 2; };'並且當你執行這行'console.log(兩次(5));' 數字的值爲5,它將返回10 – Gilsha 2014-11-06 11:17:36

+1

@Gilsha - 把它放在答案中,你會得到我的投票 – myfunkyside 2014-11-06 11:19:51

+0

所以如果兩次成爲內部函數,因子變量會發生什麼?它存儲在內存或其他東西?這可能是顯而易見的,但不是我... – evu 2014-11-06 11:21:45

回答

1

內部函數是multiplier返回值。它直到console.log(twice(5));纔會被調用,明確地通過值5

+0

而在'5'這個函數中呢?數字或因素? – myfunkyside 2014-11-06 11:15:26

+1

當然號碼:'返回功能(號碼){' – Quentin 2014-11-06 11:15:45

+1

是啊..「當然」在這種情況下是沒用的,你不覺得嗎?如果我們知道這很簡單,那我們就不會問了。 – myfunkyside 2014-11-06 11:17:24

相關問題