Estoy tratando de actualizar un código antiguo que alguien dejó antes, en algún momento, hizo una llamada a la función attr de un JQuery 3.3.1 antiguo como este:
$("#myiframe").attr("src", url, function () { $(window).on("unload", function () { // Some function stuff }); });Mi problema es que quiero saber qué hace exactamente esto (ya sé qué hace attr cuando tiene 2 parámetros, pero no 3) antes de adaptarlo a una versión más nueva, pero cuando busco sobre la función .attr en JQuery, todo Encontré que tiene solo dos parámetros, no 3 como este, no sé si es correctamente una función de devolución de llamada (poco probable, porque ninguno de los parámetros que acepta esta función es una función de devolución de llamada), u otra cosa.
El archivo JQuery es el que sirve googleapis, por lo que no es probable que haya sido modificado especialmente para esto.
Por favor, ¿alguien puede explicarme qué hace?
Ninguna firma de attr() acepta 3 argumentos. El último argumento es redundante. Incluso si tuviera un propósito, poner un controlador de eventos window.unload allí no haría nada útil.
Saludos a su comentario bajo la pregunta:
¿Por qué no lanza un error fatal por la cantidad de argumentos?
Es porque JS es un lenguaje muy permisivo. Puede pasar tantos argumentos a una función como desee, JS ignorará cualquier extra y solo vinculará aquellos que definió en la definición de la función (hasta 2 en este caso usando attr() ). Aunque tenga en cuenta que todavía es posible recuperar todos los argumentos que se usaron en la invocación de la función usando la palabra clave arguments