Forma fea tienen de crear un objeto nuevo (¿"new Object()" en vez de "{}"?) pero bueno, vaya uno a saber...
Lo que sucede en la línea 2 es que se crea una nueva función anónima con function(), y esa función anónima se asigna a cargadorContenidos, resultando en efecto igual a
Código Javascript
:
Ver originalfunction cargadorContenidos(...) { ... }
net.CargadorContenidos = cargadorContenidos;
this se refiere a net.CargadorContenidos, es decir, a la función anónima que se creará. La idea luego es que los nuevos objetos "cargador" heredan las propiedades de este objeto función.
Este ejemplo utiliza una forma de herencia que no es la más apropiada en Javascript. Personalmente prefiero los prototipos, y seguir las recomendaciones de
Douglas Crockford para conseguir
herencia entre objetos, que es la forma "nativa" de javascript.
El ejemplo se puede modificar fácilmente para ser más entendible, el siguiente código es equivalente (aunque no funciona, requiere más cambios):
Código Javascript
:
Ver original// función para herencia entre objetos
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
// se inicializan los objetos principales
var net = {};
net.CargadorContenidos = {
url : null,
req : null,
onload : null,
onerror : null,
cargaContenidoXML : function(url, funcion, funcionError) { ... },
onReadyState : function() { ... },
defaultError : function() { ... },
}
// luego se lo puede llamar así
var cargador = Object.create(net.CargadorContenidos)
cargador.cargaContenidoXML(url, funcion, funcionError);