当我这样做时:
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/