高阶函数

高阶函数

高阶函数是指至少满足下列条件之一的函数

  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'))





原文地址:https://www.cnblogs.com/Paul-Yellow/p/10411547.html