您准备好穿越JavaScript的扭曲和激动人心的世界吗?今天,我们即将使用高阶功能和回调来跳舞,听起来它们属于科幻电影中,而不是在您的日常JavaScript文件中。但是不要惊慌!这些不是来自另一个星系的外星人。他们在这里,方便,他们将成为您编码的最好朋友。让我们开始吧?
“高阶函数”或“花哨的函数”
首先,让我们解决这只称为高阶功能的野兽。不,他们不是皇室,也不坐在镀金的宝座上。在JavaScript中,高阶功能只是一个功能,可以做到这些超酷的事物:
- 将一个或多个函数作为参数(是的,您读到正确的功能,函数中的功能,例如间谍小说中的秘密消息)
- 将功能作为结果返回(就像那些不断从盒子里弹出的惊喜礼物)
这是一个高阶功能的一个示例。认识greetSomeone
。它将函数作为参数(我们将在SEC中获取的回调)和名称。然后,它以名称为参数将回调函数调用:
function greetSomeone(callback, name) {
return callback(name);
}
const sayHello = name => `Hello, ${name}!`;
console.log(greetSomeone(sayHello, "John")); // Hello, John!
在此代码中,greetSomeone
是我们的高阶函数,sayHello
是我们作为参数传递的回调函数。简单,对吗?
“回调”或“给我回电,JavaScript!”
好吧,我们已经处理了高和强大的高阶功能,现在让我们转到回调。回调就像那个可靠的朋友,他们将始终返回您的电话(或在这种情况下,您的功能)。
回调函数是一个作为参数传递到另一个函数中的函数,并有望在以后调用(或执行)。这有点像说:“嘿,javascript,做你的事情,完成后,给我戒指!”
让我们看一个简单的回调示例:
function bakeCake(callback) {
console.log("Baking cake...");
setTimeout(() => {
callback();
}, 2000);
}
function icingTheCake() {
console.log("Icing the cake...");
}
bakeCake(icingTheCake);
在此代码中,bakeCake
是一个将回调作为参数的函数。在bakeCake
中,我们使用JavaScript的setTimeout
功能(顺便说一句,内置的高阶功能)来模拟烤蛋糕所需的时间。一旦蛋糕被“烘烤”(2秒后),回调功能icingTheCake
就被称为,我们继续冰上蛋糕。
总结或“我们幸存下来!”
所以,你有,伙计们!高阶功能和回调不是一些可怕的怪物。它们更像是JavaScript的秘密超级英雄,赋予您的代码超级大国,并使您看起来像是一个编码天才。
记住,与编码(和生活中)中的所有内容一样,实践变得完美。因此,继续前进,进行这些概念,很快您将围绕“高阶功能”和“回调”等术语,就好像它们过时了一样。
直到下一次,保持代码清洁和咖啡
强!愉快的编码,我的JavaScript读者!