小编给大家分享一下javascript中的回调是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
你有无意中看到“callback"但并不知道其中的意思么?不用担心。不是只有你一个人这样。很多JavaScript新手都难以理解回调。
虽然回调比较令人困惑,你仍然需要彻底的学习理解它们,因为它在JavaScript中是一个很关键的概念。如果你不知道回调,那么你无法走的长远。
这篇文章中你会看到ES6里的箭头函数。如果你还不熟悉它们,我建议你先看看ES6职务。(只要阅读箭头函数部分)。
引用>
回调是一个函数,会作为一个参数传递到另一个函数中,并稍后去执行。(开发人员说在执行函数时调用另一个函数,这就是为什么回调<代码> 代码>称之为回调的原因)。
它们在JavaScript中很常见,以至于你可能不知道它们是回调函数的时候已经使用过它们。
一个可以接收回调函数的例子是<代码> addEventLisnter 代码>:
=document.querySelector const按钮(& # 39;按钮# 39;) button.addEventListener(& # 39;点击# 39;,函数(e) {//添加点击类按钮 this.classList.add(& # 39;点击# 39;) })没看出来这是个回调吗?来看看下个例子。
=document.querySelector const按钮(& # 39;按钮# 39;)//函数添加& # 39;点击# 39;类元素 点击函数(e) { this.classList.add(& # 39;点击# 39;) }//添加单击函数作为回调的事件监听器 button.addEventListener(& # 39;点击# 39;,点击)这里,我们通过JavaScript给一个按钮绑定了<代码>点击代码>事件。一旦检测到了点击时间,JavaScript会执行<代码>点击代码>函数,所以,在这个例子中,当<代码> addEventListener 代码>函数接收一个回调函数时,<代码>点击代码>是一个回调。
现在知道回调是什么了么?:)
我们来看看另外一个例子。这一次,我们假设你想过滤一个数字数组来得到一个小于<代码> 5> 代码的列表。这里,你给<代码>过滤器> 代码函数传递了一个回调函数。
const数量=(3、4、10、20) const lesserThanFive=数字。过滤器(num=比;num & lt;5)现在,如果你把上面的代码用具名函数改一下,那么过滤数组就会变成这样:
const数量=(3、4、10、20) const getLessThanFive=num=比;num & lt;5//传递getLessThanFive函数滤波器 const lesserThanFive=numbers.filter (getLessThanFive)在这个例子中,<代码> getLessThanFive> 代码是个回调。<代码>数组。过滤器> 代码是一个可以接收回调的函数。
现在看看吗?当你知道回调后会发现无处不在。
下面这个例子告诉你怎么写一个回调函数和一个可以接收回调的函数。
//创建一个函数,它接受另一个函数作为参数 const callbackAcceptingFunction=(fn)=比;{//调用函数所需的参数 返回fn (1、2、3) }//回调变参数从上面的电话 const调=(__arg1、最长长度)=比;{ 返回__arg1 +最长+长度 }//传递一个回调到接受一个回调函数 const结果=callbackAcceptingFunction(回调) console.log(结果)//6请注意,当你把回调传给另一个函数时,只是把引用传递过去了(不执行,因此没有<代码>()代码>)
“const结果=callbackAcceptingFunction(回调)的你只能在<代码> callbackAcceptingFunction> 代码里调用这个回调当你这么做时,你可以给这个回调函数传递可能需要任意数量的参数:
const callbackAcceptingFunction=(fn)=比;{//调用回调函数有三个参数 fn (1、2、3) }这些参数通过<代码> callbackAcceptingFunction> 代码传递到回调里,然后用它们的方式在回调里进行传递:
//回调参数来自callbackAcceptingFunction const调=(__arg1、最长长度)=比;{ 返回__arg1 +最长+长度 }这是一个回调的结构。现在,你知道了<代码> addEventListener> 代码包含了<代码>事件> 代码参数:
//现在你知道这个事件对象来自!:) button.addEventListener(& # 39;点击# 39;,(事件)=比;{ event.preventDefault () })唷!这是回调的基本含义!只要记住关键字:将一个函数传递到另一个函数中,你将回想起上面提到的机制。
这种传递函数的能力是一个很大的事情。它是如此之大,以至于JavaScript中的函数都是高阶函数。高阶函数是函数式编程范式中非常重要的东西。
javascript中的回调是什么