高階函數

高階函數

高階函數是指至少知足下列條件之一的函數app

  1. 函數能夠做爲參數被傳遞
把函數看成參數傳遞,這表明咱們能夠抽離出一部分容易變化的業務邏輯,把這部分業務邏 輯放在函數參數中,這樣一來能夠分離業務代碼中變化與不變的部分。其中一個重要應用場景就 是常見的回調函數

把函數看成參數傳遞,這表明咱們能夠抽離出一部分容易變化的業務邏輯,把這部分業務邏 輯放在函數參數中,這樣一來能夠分離業務代碼中變化與不變的部分。其中一個重要應用場景就 是常見的回調函數

 var appendDiv = function (cb) {
        for (var i = 0; i < 100; i++) {
            var oDiv = document.createElement('div')
            oDiv.innerHTML = i;
            document.body.appendChild(oDiv)
            if (typeof cb === 'function') {
                cb(oDiv)
            }


        }
    }

    appendDiv(function (oDiv) {
        oDiv.style.display = 'none'
    })

 

  1. 函數能夠做爲返回值輸出
相比把函數看成參數傳遞,函數看成返回值輸出的應用場景也許更多,也更能體現函數式編 程的巧妙。讓函數繼續返回一個可執行的函數,意味着運算過程是可延續的。

相比把函數看成參數傳遞,函數看成返回值輸出的應用場景也許更多,也更能體現函數式編 程的巧妙。讓函數繼續返回一個可執行的函數,意味着運算過程是可延續的。

 // 判斷數據類型
    var Type = {}
    for (var i = 0, type; type = ['String', 'Array', 'Number'][i++];) {

        (function (type) {
            Type['is' + type] = function (obj) {
                return Object.prototype.toString.call(obj) === '[object ' + type + ']'
            }
        })(type)

        console.log(1111)

    }
    alert(Type.isString('11111'))
相關文章
相關標籤/搜索