高階函數是指至少知足下列條件之一的函數app
把函數看成參數傳遞,這表明咱們能夠抽離出一部分容易變化的業務邏輯,把這部分業務邏 輯放在函數參數中,這樣一來能夠分離業務代碼中變化與不變的部分。其中一個重要應用場景就 是常見的回調函數
把函數看成參數傳遞,這表明咱們能夠抽離出一部分容易變化的業務邏輯,把這部分業務邏 輯放在函數參數中,這樣一來能夠分離業務代碼中變化與不變的部分。其中一個重要應用場景就 是常見的回調函數
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' })
相比把函數看成參數傳遞,函數看成返回值輸出的應用場景也許更多,也更能體現函數式編 程的巧妙。讓函數繼續返回一個可執行的函數,意味着運算過程是可延續的。
相比把函數看成參數傳遞,函數看成返回值輸出的應用場景也許更多,也更能體現函數式編 程的巧妙。讓函數繼續返回一個可執行的函數,意味着運算過程是可延續的。
// 判斷數據類型 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'))