Método Encadeamento – Corrente de Método – É uma técnica que permite que você execute um método após o outro sem a necessidade de reutilizar o objeto.
Quando começamos a programar em objetos, geralmente fazemos isso:
Defina o objeto com 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"); } } }
vamos Chame os métodos com o objeto:
/*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();
não seria o código melhor se pudéssemos escrever dessa maneira? 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-se
em javascript, as funções retornam um valor, se o valor não for especificado, ele é retornado indefinido.
Ao usar – isso – estamos nos referindo ao objeto com o qual estamos trabalhando.
Para encadear os métodos que você tem que devolver o objeto com o qual estamos trabalhando.
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; } }
desta maneira podemos usar nossa cadeia 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();