91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS函數柯里化

發布時間:2020-07-14 03:38:05 來源:網絡 閱讀:162 作者:喝醉的熊 欄目:web開發

柯里化是高階函數的一個特殊用法,把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,并且返回接受余下的參數而且返回結果的新函數的技術。

// 普通的add函數
function add(x, y) {
    return x + y
}

// Currying后
function curryingAdd(x) {
    return function (y) {
        return x + y
    }
}

add(1, 2)           // 3
curryingAdd(1)(2)   // 3

一道經典面試題

// 實現一個add方法,使計算結果能夠滿足如下預期:

add(1)(2)(3) = 6;
add(1, 2, 3)(4) = 10;
add(1)(2)(3)(4)(5) = 15;

function add() {
    // 第一次執行時,定義一個數組專門用來存儲所有的參數
    var _args = Array.prototype.slice.call(arguments);

    // 在內部聲明一個函數,利用閉包的特性保存_args并收集所有的參數值
    var _adder = function() {
        _args.push(...arguments);
        return _adder;
    };

    // 利用toString隱式轉換的特性,當最后執行時隱式轉換,并計算最終的值返回
    _adder.toString = function () {
        return _args.reduce(function (a, b) {
            return a + b;
        });
    }
    return _adder;
}

add(1)(2)(3)                // 6
add(1, 2, 3)(4)             // 10
add(1)(2)(3)(4)(5)          // 15
add(2, 6)(1)                // 9
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城固县| 阿荣旗| 磐安县| 施秉县| 海晏县| 泸水县| 绍兴市| 民丰县| 东阿县| 阿克苏市| 永泰县| 恭城| 双鸭山市| 连南| 淳安县| 红河县| 唐山市| 逊克县| 即墨市| 会理县| 江安县| 丽江市| 阿瓦提县| 合作市| 高邑县| 平乡县| 鹿泉市| 壶关县| 乌鲁木齐县| 宜宾市| 调兵山市| 木兰县| 旬阳县| 县级市| 息烽县| 郯城县| 泰来县| 开江县| 海淀区| 上犹县| 平凉市|