Estaba leyendo sobre cómo 'Crear una biblioteca JavaScript' antes y encontré estos códigos que me hacen querer arrancarme el pelo.¿Cómo funcionan estos fragmentos de código exactamente?
Aquí está el código que tiene mi cerebro en nudos:
if (window === this) {
return new _(id);
}
_ (id) es sólo el nombre de la función en la que se contiene el código. Aquí está el resto del código si necesita revisarlo usted mismo.
function _(id) {
// About object is returned if there is no 'id' parameter
var about = {
Version: 0.5,
Author: "Michael Jasper",
Created: "Fall 2010",
Updated: "23 November 2011"
};
if (id) {
// Avoid clobbering the window scope:
// return a new _ object if we're in the wrong scope
if (window === this) {
return new _(id);
}
// We're in the correct object scope:
// Init our element object and return the object
this.e = document.getElementById(id);
return this;
} else {
// No 'id' parameter was given, return the 'about' object
return about;
}
};
Nunca he visto 'devolver nueva función', pero me gustaría saber cómo funciona.
La otra pieza de código:
_.prototype = {
hide: function() {
this.e.style.display = 'none';
return this;
}
show: function() {
this.e.style.display = 'inherit';
return this;
}
};
sé que este código añade nuevos métodos para el objeto, sino _ ¿Por qué se 'Retorno Este'? Intenté sin eso y funcionó bien.
Una última cosa, el enlace al artículo es http://www.mikedoesweb.com/2012/creating-your-own-javascript-library/
Volver esto? Entonces, ¿puedes agregar algo más después? Adivinando – Anonymous
El 'return this' habilita el encadenamiento, como en' magic(). Do(). Stuff() '. –
sí, el encadenamiento es lo que quería decir ,, es como jQuery, pero jQuery es un poco más complejo y devuelve muchos objetos – Anonymous