【发布时间】:2021-11-26 09:53:39
【问题描述】:
我正在尝试更新某人之前留下的一些旧代码,在某个时候,它调用了旧的 3.3.1 JQuery 的 attr 函数,如下所示:
$("#myiframe").attr("src", url, function () {
$(window).on("unload", function () {
// Some function stuff
});
});
我的问题是,我想知道它到底是做什么的(我已经知道 attr 在它有 2 个参数时会做什么,但不是 3 个),然后再将其调整为较新的版本,但是当我搜索 .attr 函数时JQuery,我发现只有两个参数,而不是像这样的3个,我不知道是否正确的回调函数(不太可能,因为这个函数接受的参数都不是回调函数),或者其他的东西。
JQuery 文件是由 googleapis 提供的,因此不太可能为此专门修改。
拜托,谁能解释一下它的作用?
【问题讨论】:
-
没有
attr()的签名接受 3 个参数。最后一个论点是多余的。即使它确实有目的,在其中放置一个 window.unload 事件处理程序也不会做任何有用的事情。 -
@RoryMcCrossan 那么为什么它不会针对参数数量启动致命错误?
-
因为 JS 在很多方面没有那么严格。
-
@RoryMcCrossan 所以我有了这个功能,我可以尝试用核武器来毁灭世界,这将是无用的,什么也不做。我是对的?
-
正确。您可以将任意数量的参数传递给函数,JS 将忽略任何额外的,并且只绑定您在函数定义中定义的那些(在本例中为 2)。尽管请注意,仍然可以使用
arguments关键字检索函数调用中使用的所有参数:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript jquery attr