写前端三年,最让我觉得“开窍”的一刻,是理解了可以把函数像变量一样传来传去。
一、回调是最朴素的函数参数
addEventListener 的第二参数是一个函数;数组的 map、filter 也接收函数。与其说这是“高阶函数”,不如说我们每天都在把行为当作数据传递。
const total = nums.filter(n > 0).reduce((a, b) => a + b, 0);二、拆出小函数
当回调体超过三行,我习惯把它抽成带名字的函数,这样既能复用,也让阅读者先看到意图再看实现。
函数化不是炫技,它只是让“变化的部分”和“稳定的部分”分家的一个手段。