首页 > 解决方案 > 带有 3 个参数的 JQuery 3.3.1 attr。它能做什么?

问题描述

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

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

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

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

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

标签: javascriptjqueryattr

解决方案


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

关于您在问题下的评论:

为什么它不会针对参数数量引发致命错误?

这是因为 JS 是一种非常宽松的语言。您可以将任意数量的参数传递给函数,JS 将忽略任何额外的,并且只绑定您在函数定义中定义的那些(在这种情况下使用 最多 2 个attr())。arguments尽管请注意,仍然可以使用关键字检索函数调用中使用的所有参数


推荐阅读