我通常使回调定义如此简单:回调是function
作为 a 传递的function argument
(或对象属性,如果您使用对象作为函数参数)。稍后,我们传递的那个函数将在其中执行。让我们举个例子。我为自己简化callback
了定义。
如果你还是不明白,也许这个例子能让你明白。
const multiply = ({ numb1, numb2 }) => {
return numb1 * numb2;
};
const sum = ({ numb1, numb2 }) => {
return numb1 + numb2;
};
const doWith2Numbers = ({ cb, numb1, numb2 }) => {
return cb({ numb1, numb2 });
}
doWith2Numbers({ cb: multiply, numb1: 2, numb2: 3 }) // 6
doWith2Numbers({ cb: sum, numb1: 2, numb2: 3 }) // 5
我们有两个函数可以将两个数字相乘和相加。到目前为止,您可能会想,“我们可以像这样简单地调用该函数。”
multiply({ numb1: 2, numb2: 3 })
sum({ numb1: 2, numb2: 3 })
它也是一种有效的语法,但我们没有以后可以重用的蓝图。numb2
这个简单的例子:如果是 2、3 或 4,我什么也不想做。
而不是编辑我们创建的所有函数 (multiply
和sum
)。我们可以只编辑doWith2Numbers
.
const doWith2Numbers = ({ cb, numb1, numb2 }) => {
const nothingNumbers = [2, 3, 4];
if (nothingNumbers.includes(num2)) return undefined;
// other code
}
另一个例子:我们是一个包的创建者,但我们真的不知道我们的包会做什么。我们只知道函数接收参数。我们将把剩下的交给其他开发人员来描述功能。在使用 Web 框架 Express.js 时,我们会经常使用回调。