javascript - 执行 onload=fn 时的第一个参数

标签 javascript

当我这样做时:

img.onload=fn;

函数 fn 获取参数[0] [对象事件]

如何避免这种情况?

最佳答案

您不会避免事件对象。你拥抱他们。话虽这么说,如果您不想,则不必使用它。当浏览器触发 onload 事件时,无论您是否请求,它都会将事件对象传递给处理程序。正如您所指出的,即使您没有在处理程序参数中专门为其提供名称,它也会出现在 arguments 数组中。

正如其他人在他们的答案和评论中指出的那样,您可以添加另一个匿名函数来进一步从引发的事件中删除您的响应代码,但我个人认为这确实没有必要。

正如@Yoshi 在上面的评论中指出的那样,以下方法可行:

img.onload = function() { 
  fn.call(this) 
};

这将调用传入当前上下文 this 引用的 fn 方法。再说一次,我个人会避免触摸事件对象,因为这种类型的代码可能会在六周后让其他人和你自己感到困惑。

关于javascript - 执行 onload=fn 时的第一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232267/

相关文章:

javascript - 在服务器上记录客户端 JavaScript 错误

javascript - 如何画 donut ?

javascript - Highstock 图表 x 轴标签重叠问题

javascript - Mootools JSON : result outside of method/scope

javascript - 变量已定义但仍然出现未定义错误

javascript - 如何使for循环同步?

javascript - 在 Javascript 中打印没有弹出窗口的 div 标签的内容

c# - 根据两个字段记住密码

JavaScript JQuery Ajax 问题 : POST Works fine in Firefox, IE、Safari 但不是 Chrome

javascript: $(window).height 不是函数