A continuación se muestra un fragmento de código en Django 3 por libro de ejemplo que podemos usar para marcar en un navegador y al hacer clic en el marcador, se ejecutará el código que contiene. ¿Alguien puede ayudarme a entender este código?
(function(){ if (window.myBookmarklet !== undefined){ myBookmarklet(); } else { document.body.appendChild(document.createElement('script')).src='https://127.0.0.1:8000/static/js/bookmarklet.js?r='+Math.floor(Math.random()*99999999999999999999); } })();Cualquier recurso relevante será apreciado. Muchas gracias
Es porque es una función anónima , no tiene nombre. Debido a que no tiene nombre y debe ejecutarse, debe estar entre paréntesis para poder ejecutarlo llamándolo con () al final.
Exactamente así. Si desea escribir una función que no se necesitará en ningún otro lugar, puede definirla sin nombre para que sea anónima. Para llamarlo, ver 1.
Antes de ese código js, el archivo HTML probablemente tenga una serie de etiquetas <script> donde define ciertas dependencias, en este caso archivos javascript. Uno de esos archivos js ha asignado myBookmarklet a window , así: window.myBookmarklet = //... a function definition . El código que publicó está comprobando si window.myBookmarklet !== undefined antes de llamar a esa función.