JQuery 3.3.1 属性有 3 个参数。它能做什么?

JQuery 3.3.1 attr with 3 parameters. What it does?

我正在尝试更新某人之前留下的一些旧代码,在某些时候,它调用了旧 3.3.1 JQuery 的 attr 函数,如下所示:

$("#myiframe").attr("src", url, function () {
        $(window).on("unload", function () {
            // Some function stuff
        });
});

我的问题是我想知道它到底做了什么(我已经知道当它有 2 个参数时 attr 做了什么,但不是 3 个),然后才让它适应更新的版本,但是当我搜索 .attr JQuery 中的函数,我发现只有两个参数,而不是像这样的 3 个,我不知道是否是正确的回调函数(不太可能,因为此函数接受的参数 none 是一个回调函数)或其他东西。

JQuery 文件是由 googleapis 提供的文件,因此不太可能为此进行了专门修改。

拜托,有人可以向我解释一下它的作用吗?

attr() 的签名不接受 3 个参数。最后一个参数是多余的。即使它确实有用,将 window.unload 事件处理程序放在那里也不会做任何有用的事情。

关注您在问题下的评论:

Why doesn't it launch a fatal error for the number of arguments?

因为JS是一门非常宽松的语言。你可以传递任意多的参数给一个函数,JS 会忽略任何额外的参数,只绑定你在函数定义中定义的参数(在本例中使用 attr() 最多绑定 2 个)。尽管请注意,仍然可以使用 arguments 关键字

检索函数调用中使用的所有参数