2017年9月1日 星期五

[JavaScript] Currying

  • Currying
    • Code 1
    • 呼叫一個 function 並帶入參數,它會回傳一個 function 去處理剩下的參數
var UserInfo = function(name) {
    return function(age) {
        return name + ',' + age;
    };
};

var UserName1 = UserInfo('Lyndon');
var UserName2 = UserInfo('Ken');

console.log(UserName1(30))
console.log(UserName2(28))
    • UserInfo function,接受一個參數並回傳一個新的 function
    • 當呼叫它後,回傳的 function 會透過 closure 方式儲存 UserInfo 第一個參數
    • Code 2
    • 一次性的呼叫 Currying function,每次只傳遞一個參數
var UserInfo = function(name) {
    return function(age) {
        return name + ',' + age;
    };
};

console.log(UserInfo('Lyndon')(30))
console.log(UserInfo('Ken')(28))

沒有留言:

張貼留言