关于js匿名函数参数传递的问题
近日看到js中处理拖放问题时有如下代码:varoDraggable=new...varoDrapTarget=new...oDraggable.addDropTarget...
近日看到js中处理拖放问题时有如下代码:
var oDraggable = new ...
var oDrapTarget = new ...
oDraggable.addDropTarget(oDragTarget);
//注意下面一行代码,不懂得地方来了
oDropTarget.addEventListener("drop", function(oEvent){....});
请问: oEvent是怎么传递过来的,是谁传递给这个匿名函数的? 展开
var oDraggable = new ...
var oDrapTarget = new ...
oDraggable.addDropTarget(oDragTarget);
//注意下面一行代码,不懂得地方来了
oDropTarget.addEventListener("drop", function(oEvent){....});
请问: oEvent是怎么传递过来的,是谁传递给这个匿名函数的? 展开
3个回答
展开全部
Listener自带的参数,当触发Listener事件时就会自动传这个参数到这个方法
追问
能不能说详细一点,listener还带别的参数吗,是谁调用了这个匿名函数。在哪里可以找到详细一点的资料。
追答
打个比方
你的Listener是监听click 鼠标单击事件
监听的对象是一个button按钮
那么当你点击按钮的时候,监听自动调用function中的函数,如果这个参数是object类型, 那么就获取到了这个button的对象
同理 你这里是“drop“事件 参数应该是event类型 那么当你执行drop操作的时候,就会得到drop这个动作的事件,对方法而言,其实未必会用得到这个事件,提供这个参数只不过为了让程序员获取方便。
展开全部
addEventListener方法的实现中会调用到那个匿名函数,并传递参数进去
例如:
function DropTarget() {
this.addEventListener = function(stringEvent, fnHandler) {
var oEvent = ....;
// ...
fnHandler(oEvent);
// ...
}
}
例如:
function DropTarget() {
this.addEventListener = function(stringEvent, fnHandler) {
var oEvent = ....;
// ...
fnHandler(oEvent);
// ...
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个属于内部机制吧
oEvent准确说是一个事件对象
就算是手动添加事件时如:
obj.onclick=function(event){}
也是可以加上的这个参数的 但是这种只支持标准(w3c)的浏览器 火狐等
ie的话这个事件对象是以全局对象的形式存在的 window.event 所以不用传参
oEvent准确说是一个事件对象
就算是手动添加事件时如:
obj.onclick=function(event){}
也是可以加上的这个参数的 但是这种只支持标准(w3c)的浏览器 火狐等
ie的话这个事件对象是以全局对象的形式存在的 window.event 所以不用传参
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询