Cadea de método – Cadea de método: é unha técnica que permite executar un método despois do outro sen necesidade de reutilizar o obxecto.
Cando comezamos a programar en obxectos normalmente facemos isto:
Definir o obxecto cos seus atributos e métodos:
var Dummy = function () { this.nombre = 'dummy'; this.debug_nombre = debug_nombre; this.mostrar_nombre = mostrar_nombre; this.otro_valor = otro_valor; function debug_nombre() { console.log("Soy: " + this.nombre); } function mostrar_nombre () { alert("Soy: " + this.nombre); } function otro_valor(param) { if (param !== undefined) { console.log("Otro:" + param); } else { console.log("Otro valor"); } } }
Imos Chama os métodos co obxecto:
/*Con el código anterior tendríamos que llamar el objeto en cada ocasión que queramos ejecutar un método*/var dummy = new Dummy();dummy.debug_nombre();dummy.mostrar_nombre();dummy.otro_valor('prueba');dummy.otro_valor();
Non sería o código mellor se puidésemos escribilo deste xeito? Bibliotecas como jQuery.
/*Al encadenar los métodos, los podemos llamar uno después de otro. */ dummy.debug_nombre().mostrar_nombre().otro_valor('prueba');/*En este caso, como son muchos métodos, se puede perder la legibilidad, podemos utilizar la siguiente sintaxis: */dummy.debug_nombre() .mostrar_nombre() .otro_valor('prueba') .otro_valor();/*Nota: El único ; - punto y coma - se incluye al final de la cadena.Si se utiliza antes js interpreta que es el fin de la instrucción.*/
Lembre
en JavaScript, as funcións devolven un valor, se o valor non se especifica, devolve indefinido.
Ao usar – isto – estamos referíndonos ao obxecto co que estamos a traballar.
para cadea os métodos que ten que devolver o obxecto co que estamos a traballar.
var Dummy = function () { this.nombre = 'dummy'; this.debug_nombre = debug_nombre; this.mostrar_nombre = mostrar_nombre; this.otro_valor = otro_valor; function debug_nombre() { console.log("Soy: " + this.nombre); return this; }; function mostrar_nombre () { alert("Soy: " + this.nombre); return this; }; function otro_valor(param) { if (param !== undefined) { console.log("Otro:" + param); } else { console.log("Otro valor"); } return this; } }
Deste xeito podemos usar a nosa cadea de métodos DOS.
var Dummy = function () { this.nombre = 'dummy'; this.debug_nombre = debug_nombre; this.mostrar_nombre = mostrar_nombre; this.otro_valor = otro_valor; function debug_nombre() { console.log("Soy: " + this.nombre); return this; }; function mostrar_nombre () { alert("Soy: " + this.nombre); return this; }; function otro_valor(param) { if (param !== undefined) { console.log("Otro:" + param); } else { console.log("Otro valor"); } return this; } }var dummy = new Dummy();dummy.debug_nombre() .mostrar_nombre() .otro_valor('prueba') .otro_valor();