JavaScript——高階函數

高階函數就是輸入參數中有函數,或者返回值是函數的函數。

1.函數作為參數

​如果大家使用過setTimeout、setInterval和AJAX請求,那麼大家已經用過高階函數了,這也是我們最常看到的場景:**回調函數**,它將函數作為參數傳遞給另一個函數。例如AJAX請求中,我們會用回調函數來處理請求成功或者失敗後的一些邏輯:

$.ajax('/api/request/tabledata', function(res) {

console.log('請求成功!');

})

在Array、Object等基本對象的原型上有很多API,接收回調函數來進行一些邏輯操作。這裡說一個很常用的ES6方法filter,此方法返回一個新數組,由回調函數執行後返回true或者為真的元素組成。

const arr = [21, 3, 6, 8, 19];

const newArr = arr.filter(function(item) {

return item > 6;

})

console.log(newArr); // [21, 8, 19]

2.函數作為返回值

另一個經常看到的高階函數的場景是:一個函數內部返回另一個函數,比如:

function bar() {

return function() {}

}

主要是利用閉包來保持作用域:

function add() {

var number = 0;

return function(x) {

return number += x;

}

}

var newAdd = add();

newAdd(1); // 1

newAdd(2); // 3

歡迎大家一起討論~~

如果有對前端感興趣的小夥伴,可以關注並私信我,會經常更新一些知識點,也可以找我要一些視頻或者電子書資料~~

最後,請各位小夥伴幫忙投下票,讓我知道你們從事前端開發多久了呢。非常感謝

你從事前端開發多久了 (單選)
0人
0%
小於1年
0人
0%
1年
0人
0%
2年
0人
0%
3年
0人
0%
3年以上
<button>投票/<button>


JavaScript——高階函數

勾引你們進來看我,嗚嗚嗚~~


JavaScript——高階函數

嗚嗚嗚


JavaScript——高階函數

就知道你們是跟著美女進來的!!!



分享到:


相關文章: