El primer caso es un IIFE (Immediately-Invoked Function Expression), podes leer sobre eso
acá.
Básicamente es una función anónima en forma de expresión que se define y se ejecuta inmediatamente.
---
El segundo caso se puede descomprimir en lo siguiente:
Código Javascript
:
Ver originalvar localFunction = function(x, undefined) {};
with (localFunction) {
length // equivalente a localFunction.length
}
Donde length es una property de los objetos function (indica la aridad de la función).
---
El tercer caso simplemente hace uso de una feature de los constructores, que te permite devolver un objeto (no primitivas!) en un constructor. de la misma manera:
Código Javascript
:
Ver originalfunction Pirate() {}
new Pirate instanceof Pirate; // true;
Peeero, si devolvemos un objeto en el constructor se cumple que:
Código Javascript
:
Ver originalfunction Pirate() {
return {};
}
new Pirate instanceof Pirate; // false;
---
PD:
http://codingspot.com/2010/02/answer...vascript-quiz/