Cómo extender objetos con jQuery
En muchos de los plugins de jQuery que manejamos vemos las expresiones $.extend (o jQuery.extend) y $.fn.extend (ojQuery.fn.extend).
Pues bien, lo que estamos viendo en estas expresiones es la aplicación del metodo .extend().
Este método es la base para la creación de plugins y para la parametrización de nuestrosplugins (es decir poder tener unos valores por defecto que el usuario pueda modificar al llamar al plugin).
Pero... ¿que hace exactamente el metodo .extend()?
Basicamente lo que hace es extender objetos.Esto significa que, dado un objeto, le añade el contenido (funciones y variables) de otro objeto (o de otros).
La nomenclatura de este metodo es la siguiente:
jQuery.extend( target, [ object1 ],[ objectN ] )
Ahora bien, dependiendo del numero de objetos que reciba, el resultado final será diferente...
Cuando .extend() recibe un unico objeto
En este caso, como solo se le pasa un objeto,lo que hace es añadir los metodos definidos en este objeto al objeto jQuery o al objeto jQuery.fn (tambien llamado jQuery.prototype o $.fn)
Como norma general, debemos extender elobjeto jQuery para funciones, y el objetojQuery.fn para metodos. Una funcion, a diferencia de un metodo, no puede ser accedida directamente desde el DOM.
Por ejemplo, si extendemos el objeto jQuery.fn de esta forma:$.fn.extend({
myMethod: function(){...}
});
Podremos aplicar este nuevo metodo a elementos del DOM de esta forma:
$("div").myMethod();
// aunque tambien podria llamar asi: $.fn.myMethod();Y si extendemos el objeto jQuery de esta forma:
$.extend({
myMethod2: function(){...}
});
Podremos llamar a esta nueva funcion de esta forma
$.myMethod2();
Cuando .extend() recibe dos omás objetos
Aquí lo que hace es añadirle al primer objeto, los metodos y variables definidos en el resto de objetos.
Por ejemplo:
defaults = { size: 3 };
options = { height: 6 };
var...
Regístrate para leer el documento completo.