对JS回调函数的一些看法
在回调函数中,很多人都知道它的含义,但他们还是有一点知识。至于如何使用,还是有点困惑。一些互联网上的相关信息不详细说是怎么回事,更one-sided.now我只谈论一个人认识一牛。让我们粗略定义功能,看起来,它有一个参数,这是一个函数,当函数完成,功能B执行。那么这个过程叫做回调。这句话的意思是:B函数传递到函数中形式参数和顺序执行,然后执行参数B,B是回调函数。让我们看一看下面的由于例子。
函数A(回调){
警报(A);
callback.call(本); / /回调(回调。适用),或(本),个人偏好
}
函数B(){
警报(B);
}
调用
甲(乙);
结果是,the'a'is出现先B是什么意思问人问如何写这样的代码吗看来它不会起太大作用!
是的,我认为这并不意味着,如果你调用函数在函数中直接调用它,它就不起作用了。我只写一个小例子并做初步的了解。这在编写代码的过程中很少使用,因为在大多数场景中,我们必须传递参数:
函数C(回调){
警报(C);
callback.call(这会);
}
调用
c(函数(e){)
警报(e);
});
这个电话似乎不熟悉。这里E参数被赋值给。我们只是把它分配给字符通灵,然后把它分配给一个对象,jQuery有一个E参数,让我们来讨论它。
jQuery中的E参数是如何通过回调分配的。
jQuery框架,我认为每个人都是陌生的,在很长一段时间,发展的时间是在使用,比较简单,API在线搜索起来非常方便,快速,jQuery框架,我们有时会得到一些事件中的参数,比如我想得到当前点击的坐标,点击元素的对象。这种需求是jQuery中做的很好:
$(# ID)。Bind(听到咔哒声,功能(e){ {)
/ / e.pagex,e.pagey,e.target…各种数据
});
使用它非常方便。事实上,E参数的赋值也是通过回调函数来实现的。这个参数通过回调参数得到一个对象值。一个朋友有了jjquery源代码应该已经注意到这。
这里有ajax $。
让我们看看回调函数是如何在jQuery事件对象中使用的。
为了方便起见,我简要地介绍了jQuery的一些相关实现。我以前谈过闲聊。有一种方法可以更接近框架的实现。我只想写一个简单的选择器。
无功_ $ =功能(ID)
{
这document.getelementbyid元=(ID);
}
_原型= {美元。
绑定:功能(EVT,回调)
{
var =;
如果(文件。注册侦听器)
{
This.element.addEventListener(EVT功能(e){
callback.call(这that.standadize(E));
},假);
}
如果(文件。attachevent)
{
this.element.attachevent(开+极值,函数(e){
callback.call(这that.standadize(E));
});
}
其他的
这。元{在} =功能+ EVT(e){
callback.call(这that.standadize(E));
};
},
规范:功能(e){
VaR EVT = E | | window.event;
Var pageX,pagey,到Map Control中,layery;
/ / pagex横坐标pagey坐标到Map Control中点击放置在元素的水平坐标layery点击元素的坐标
如果(EVT。pagex)
{
pagex = evt.pagex;
pagey = evt.pagey;
}
其他的
{
pagex =文件。身体。scrollLeft + evt.clientx-document.body.clientleft;
pagey =文件。身体。scrollTop + evt.clienty-document.body.clientltop;
}
如果(EVT。到Map Control中)
{
到Map Control中= evt.layerx;
layery = evt.layery;
}
其他的
{
到Map Control中= evt.offsetx;
layerxy = evt.offsety;
}
返回{
PageX:pagex,
PageY:pagey,
LayerX:到Map Control中,
layery:layery
}
}
}
窗口。$ =函数(id)
{
返回(ID)_美元;
}
$('container')。Bind(听到咔哒声,功能(e){ {)
警报(e.pagex);
});
$('container1)。Bind(听到咔哒声,功能(e){ {)
警报(e.pagex);
});
这段代码主要看的规范功能的实现,代码的兼容性,不多说了,返回的是一个对象
返回{
PageX:pagex,
PageY:pagey,
LayerX:到Map Control中,
layery:layery
}
然后看代码callback.call(这that.standadize(E))在绑定功能,这实际上是分配的参数,这是由回调回调的实现。
回调函数在调用时被称为匿名函数。
函数(e){
}
和callback.call(这that.standadize(E))相当于执行一段代码
(函数(e){)
})(规范(E))
这也是jQuery使用回调函数的经典地方。E参数被分配,以便您可能有一些理解和如何使用它们。
回调在各种框架中更为常用。有时,当你写东西时,你也可以根据实际情况使用它。
在js回调函数的上述观点是萧边分享你的全部内容。我希望能给你一个参考,希望你能支持它。