你应该了解的 3 个核心 JavaScript 概念(函数)
在 JavaScript 中,函数是“一等公民”对象,这意味着它们可以访问并被传递给函数。但这究竟意味着什么?“一等公民”函数与高阶函数或回调函数有何不同?
这些术语并不互相排斥,但我认为探索其中的细微差别很重要。
一等公民 vs 高阶 vs 回调
-
一等公民:在 JavaScript 中,函数被视为一等对象。我已经在这篇文章中讨论过为什么函数是对象。一等公民对象是指被视为变量的对象,这意味着它们可以:
- 存储到变量
- 作为参数传递(作为回调)
- 从函数返回
-
高阶函数:这指的是接受函数作为参数或返回函数作为结果的函数
-
回调函数:回调函数是作为参数传递给函数的函数。
请记住:
- 高阶函数可以接受回调函数作为参数
- 高阶函数和回调函数都是一等函数。这是因为 JavaScript 将函数视为一等对象。
因为这三个术语相互交织,所以我在下面提供了讨论这三个术语的链接,而不是为每个术语写一篇文章:
- 一等函数和高阶函数链接之间有什么区别吗......
- 函数式 JavaScript:什么是高阶函数,以及为什么人们应该关心它?链接...
- 闭包、一等函数和高阶函数链接...
let arr = [1,2,3,4,5]
const firstClass = (num) => {
return num * num
}
const higherOrder = (array, callback) => {
let newArray = []
for(let i = 0; i < array.length; i++){
newArray.push(callback(array[i]))
}
console.log(newArray)
}
higherOrder(arr, firstClass) // [ 1, 4, 9, 16, 25 ]
还不明白吗?留言告诉我吧。我很乐意进一步解释!
鏂囩珷鏉ユ簮锛�https://dev.to/jasterix/3-core-javascript-concepts-functions-j31