vue中的computed()算不算高阶函数?
维基百科上对于高阶函数的定义
In mathematics and computer science, a higher-order function (HOF) is a function that does at least one of the following:
- takes one or more functions as arguments (i.e. a procedural parameter, which is a parameter of a procedure that is itself a procedure),
- returns a function as its result.
至少满足上面的其中一个条件就可以了。computed
函数可以接受一个函数作为参数,故它是高阶函数。
我一直不太喜欢 “高阶组件” 和 “高阶函数” 这样的专业名词。因为让人觉得很困惑,让人以为“高阶XX”是一个很厉害的函数/组件。但其实就是在原有的函数/组件上面去做一层包装处理,然后返回包装结果。
所以你觉得 computed
算不算是一个对原有基础上做包装处理的函数呢,以使用和实现角度来说是的。 👉 core/packages/reactivity/src/computed.ts at v3.4.27 · vuejs/core · vuejs/core
在组合式API里面会比较好分辨:
import { ref, computed } from 'vue'
const count = ref(1)
const plusOne = computed(() => count.value + 1)
在选项式API里面会没有那么明显。
在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:
computed是高阶函数
同样的,Array原型上的常用方法map, filter, forEach这些都属于高阶函数
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
不算

高阶函数(Higher-order Function)是指可以接受一个或多个函数作为参数,并且可以返回一个函数作为结果的函数。