Foros del Web » Programando para Internet » Javascript »

Herencia Javascript

Estas en el tema de Herencia Javascript en el foro de Javascript en Foros del Web. Buenas tengo una duda. Necesito usar herencia en javascript, ya estuve viendo varios tutoriales de como usar prototype y no es problema. El problema es ...
  #1 (permalink)  
Antiguo 05/06/2017, 23:43
 
Fecha de Ingreso: octubre-2014
Ubicación: Mendoza
Mensajes: 10
Antigüedad: 9 años, 6 meses
Puntos: 0
Herencia Javascript

Buenas tengo una duda. Necesito usar herencia en javascript, ya estuve viendo varios tutoriales de como usar prototype y no es problema. El problema es que la herencia la necesito para refactorizar un par de archivos js que me dieron en la facu, pero esos archivos usan patrones de diseño, lo que hace que en la herencia no pueda llamar a los métodos ya que están encapsulados. Por ejemplo
Archivo 1.js
Código Javascript:
Ver original
  1. $(function () {
  2.    
  3.     var contexto = {};
  4.    
  5.     (function (app) {
  6.         app.init = function () {
  7.             app.bindings();
  8.         };
  9.        
  10.         app.bindings = function () {
  11.             $("#GuardarElemento").on('click', function(){
  12.                 //Aquí va todo lo necesario para guardar el elemento
  13.             });
  14.         };
  15.        
  16.         app.init();
  17.        
  18.     })(contexto);
  19.    
  20. });
Ese es el archivo del que tengo que heredar para reescribir "bindings" en los archivos hijo.
Pense en hacer los archivos y tratar de llamar a bindings, usando todos los archivos en el html, pero no se como hacerlo. Algún consejo u orientación para poder resolver esto?. Lo que más problema o duda me da es que como esta todo encapsulado en el archivo no se como acceder a binsings para sobreescribirlo. Espero haberme hecho entender. Desde ya muchas gracias. Saludos
  #2 (permalink)  
Antiguo 10/06/2017, 02:06
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: Herencia Javascript

Pues no te has explicado muy bien o yo no sé entenderte muy bien. Si lo que buscas es refactorizar, entiendo que lo que tienes que hacer es mejorar el código de los archivos, ¿no? Entonces porque no los reescribes y ya está?

En el ejemplo que has puesto está todo encapsulado y no sé si es necesario o no porque no sé para que está pensado el objeto contexto que en principio parece un lioso listener para guardar un elemento. ¿Porque quieres acceder a bindings externamente si en bindings lo que tienes es una captura de eventos para un elemento?

Sin reescribir el archivo 1 .js nunca podrás acceder a contexto que es el "propietario" del método bindings. Ahora si lo que te están pidiendo es que refactorices el archivo, entonces, entiendo, que lo que quieren es que mejores el código de ese archivo.

Ahora no sé si me he explicado yo...

Yo entendería por refactorizar el archivo hacer algo asi:

Código Javascript:
Ver original
  1. (function() {
  2.     "use strict";
  3.  
  4.     var contexto = {
  5.         bindings() {
  6.             $( "guardarElemento" ).on( "click", function() {
  7.                 // Aquí todo lo necesario para guardar el elemento
  8.             });
  9.         }
  10.     };
  11.  
  12.     contexto.bindings();
  13. })();

Eso si quieres claro seguir manteniendo la clase contexto en el archivo porque por lo que se ve del archivo ni siquiera hace falta. No sé si he acertado o no con lo que te pasa.
__________________
Diseño Web - Arisman Web
  #3 (permalink)  
Antiguo 13/06/2017, 15:56
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Herencia Javascript

Cita:
Iniciado por agus_jelnaks Ver Mensaje
Buenas tengo una duda. Necesito usar herencia en javascript, ya estuve viendo varios tutoriales de como usar prototype y no es problema. El problema es que la herencia la necesito para refactorizar un par de archivos js que me dieron en la facu, pero esos archivos usan patrones de diseño, lo que hace que en la herencia no pueda llamar a los métodos ya que están encapsulados. Por ejemplo
Archivo 1.js
Código Javascript:
Ver original
  1. $(function () {
  2.    
  3.     var contexto = {};
  4.    
  5.     (function (app) {
  6.         app.init = function () {
  7.             app.bindings();
  8.         };
  9.        
  10.         app.bindings = function () {
  11.             $("#GuardarElemento").on('click', function(){
  12.                 //Aquí va todo lo necesario para guardar el elemento
  13.             });
  14.         };
  15.        
  16.         app.init();
  17.        
  18.     })(contexto);
  19.    
  20. });
A priori no veo ninguna clase/función a la que aplicar herencia. app y contexto son objectos, no clases.
Cita:
Ese es el archivo del que tengo que heredar para reescribir "bindings" en los archivos hijo.
¿herencia de archivos? No conozco este concepto.
Cita:
Pense en hacer los archivos y tratar de llamar a bindings, usando todos los archivos en el html, pero no se como hacerlo. Algún consejo u orientación para poder resolver esto?. Lo que más problema o duda me da es que como esta todo encapsulado en el archivo no se como acceder a binsings para sobreescribirlo.
No puedes acceder a app ni a contexto. Tampoco he acabado de entender muy bien que es lo qué te piden.

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils

Etiquetas: herencia, html, js, text
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:38.