Emamexon ×

Metodă de înlănțuire – Încălcarea metodei – este o tehnică care vă permite să rulați o metodă după alta fără a fi nevoie să reutilizați obiectul.

Când am început programarea în obiecte, de obicei, facem acest lucru:

Definiți obiectul cu atributele și metodele sale:

iv ID = „F408FCA37E”

haideți Apelați metodele cu obiectul:

/*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();

nu ar arăta codul mai bine dacă am putea să o scriem în acest fel? Biblioteci cum ar fi 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.*/

Amintiți-vă

în JavaScript, funcțiile returnează o valoare, dacă valoarea nu este specificată, acesta este returnat nedefinit.
Când utilizați – acest lucru – ne referim la obiectul cu care lucrăm.
Pentru a lansa metodele pe care trebuie să le întoarceți obiectul cu care lucrăm.

DIV ID = „6EFA421E1D”>

În acest fel putem folosi lanțul nostru de metode 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();

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *