Estoy tratando de leer la fuente del Prototipo. He venido a esta parte. (Desafortunadamente, este fragmento está al principio).¿Qué hacen los paréntesis vacíos() después de una declaración de función en javascript?
¿Qué significa esto()?
Browser: (function(){
var ua = navigator.userAgent;
var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
return {
IE: !!window.attachEvent && !isOpera,
Opera: isOpera,
WebKit: ua.indexOf('AppleWebKit/') > -1,
Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
MobileSafari: /Apple.*Mobile.*Safari/.test(ua)
}
})(),
Me refiero a la última línea antes de la coma?
Nota: de acuerdo con jslint debe mover el padre de ejecución final dentro de la función entre paréntesis: '(function() {...}()) ' – ErikE
@ErikE En última instancia, hacen lo mismo. Consulte esta pregunta: http://stackoverflow.com/questions/6645766/why-are-parenthesis-used-to-wrap-a-javascript-function-call –
No hay argumento de que hagan lo mismo. Es una consideración estilística, porque al no colocar los paréntesis de ejecución dentro del par externo, puede no estar claro que lo que se devuelve es el * resultado * de la función en lugar de * la función en sí *. – ErikE