Foros del Web » Programando para Internet » Javascript »

¿como acceder a un metodo de otro prototipo?

Estas en el tema de ¿como acceder a un metodo de otro prototipo? en el foro de Javascript en Foros del Web. Buenas! Estoy un poco atascado buscando un metodo para , desde un prototipo concreto, acceder a las propiedades y metodos de otro prototypo, vease este ...
  #1 (permalink)  
Antiguo 12/03/2014, 12:38
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Pregunta ¿como acceder a un metodo de otro prototipo?

Buenas!

Estoy un poco atascado buscando un metodo para , desde un prototipo concreto, acceder a las propiedades y metodos de otro prototypo, vease este ejemplo :

Código Javascript:
Ver original
  1. function PrototipoUno() {
  2.  
  3.    this.Nombre = 'PrototypoUno';
  4.  
  5.    this.Function MetodoDecirNombre = function MetodoDecirNombre(){
  6.  
  7.         Console.log(this.Nombre);
  8.  
  9.    }
  10.  
  11. }
  12.  
  13. function PrototipoDos() {
  14.  
  15.     this.Function DecirNombrePrototipoUno = function DecirNombrePrototipoUno(){
  16.  
  17.         PrototipoUno. ? // Aqui esta mi duda, como llamo al metodo del primer prototipo?
  18.  
  19.     }
  20.  
  21. }
  #2 (permalink)  
Antiguo 12/03/2014, 14:11
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: ¿como acceder a un metodo de otro prototipo?

Tienes algunos errores en el código.

Supongo que primero tendrás que crear una instancia de objeto y luego acceder a sus métodos y propiedades.
  #3 (permalink)  
Antiguo 12/03/2014, 14:48
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Respuesta: ¿como acceder a un metodo de otro prototipo?

Cita:
Iniciado por PHPeros Ver Mensaje
Tienes algunos errores en el código.

Supongo que primero tendrás que crear una instancia de objeto y luego acceder a sus métodos y propiedades.

Que errores? . Quiero acceder al prototipo sin instanciarlo, es posible?
  #4 (permalink)  
Antiguo 12/03/2014, 15:21
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿como acceder a un metodo de otro prototipo?

¿Osea que quieres una propiedad estática?


Saludos
__________________
Grupo Telegram Docker en Español
  #5 (permalink)  
Antiguo 12/03/2014, 15:22
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Respuesta: ¿como acceder a un metodo de otro prototipo?

Quiero poder acceder a un metodo de un prototypo desde 'otro' prototipo distinto, para que en tiempo de ejecución se haga lo que yo quiera.
  #6 (permalink)  
Antiguo 12/03/2014, 15:27
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿como acceder a un metodo de otro prototipo?

¿Sabes lo que es una propiedad estática en una clase?
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 12/03/2014, 15:28
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Respuesta: ¿como acceder a un metodo de otro prototipo?

Pero es posible o no? , dejando de lado las clases estaticas que no me interesa usarlas.
  #8 (permalink)  
Antiguo 12/03/2014, 15:46
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿como acceder a un metodo de otro prototipo?

Si, es posible, con una propiedad estática.
__________________
Grupo Telegram Docker en Español
  #9 (permalink)  
Antiguo 12/03/2014, 15:50
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿como acceder a un metodo de otro prototipo?

Bueno, ya te lo habían dicho:

Código Javascript:
Ver original
  1. this.Function MetodoDecirNombre = function MetodoDecirNombre(){

Eso no es sintaxis válida.

Saludos
__________________
Grupo Telegram Docker en Español
  #10 (permalink)  
Antiguo 12/03/2014, 16:12
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Respuesta: ¿como acceder a un metodo de otro prototipo?

siempre he utilizado esa sintaxis y nunca he tenido ningun problema, me podrias explicar donde esta el error? (corregido, si, lo habia puesto mal arriba)


Código Javascript:
Ver original
  1. this.mifuncion = function mifuncion()

Entonces, si es necesario usar las propiedades estaticas, como tendria que hacer?
  #11 (permalink)  
Antiguo 12/03/2014, 16:23
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿como acceder a un metodo de otro prototipo?

Código Javascript:
Ver original
  1. PrototipoUno.mifuncion()

Y no, no funciona:



Parece que quieres hacer algo como en java para indicar el tipo de variable:

Código Java:
Ver original
  1. int fulanaVariable = 0;

Lo cuál no es posible así en Javascript.

Saludos
__________________
Grupo Telegram Docker en Español
  #12 (permalink)  
Antiguo 12/03/2014, 17:09
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Respuesta: ¿como acceder a un metodo de otro prototipo?

Entonces seria totalmente imposible hacer algo asi ? :


Código Javascript:
Ver original
  1. function PrototipoPruevaUno(){
  2.    
  3.     this.id = 1;
  4.    
  5.     this.mostrarID = function mostrarID(){
  6.    
  7.         console.log(this.id);  
  8.        
  9.     }
  10.    
  11.    
  12. }
  13.  
  14.  
  15. function PrototipoPruevaDos(){
  16.    
  17.     this.MostrarIDprototipoPruevaUno = function MostrarIDprototipoPruevaUno(){
  18.    
  19.         PrototipoPruevaUno. mostrarID();
  20.        
  21.     }
  22.    
  23. }
  24.  
  25. var ObjetoPruevaUno = new PrototipoPruevaUno();
  26. var ObjetoPruevaDos = new PrototipoPruevaDos();
  27.  
  28. ObjetoPruevaDos.MostrarIDprototipoPruevaUno();
  #13 (permalink)  
Antiguo 12/03/2014, 18:01
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿como acceder a un metodo de otro prototipo?

Los métodos y propiedades de clase (o estáticos), son aquellos que se usan directamente de la clase y no dependen de una instancia. Los métodos de instancia, son lo contrario.

Así que si se puede:

Código Javascript:
Ver original
  1. function PrototipoPruevaUno(){}
  2.  
  3. PrototipoPruevaUno.id = 1;
  4.  
  5. PrototipoPruevaUno.mostrarID = function() {
  6.     console.log(this.id);
  7. } ;
  8.  
  9. function PrototipoPruevaDos(){
  10.     this.MostrarIDprototipoPruevaUno = function(){
  11.         PrototipoPruevaUno.mostrarID();  
  12.     };
  13. }
  14.  
  15. p = new PrototipoPruevaDos();
  16. p.MostrarIDprototipoPruevaUno();

Habria que ver lo que estás tratando de hacer, pero me huele a que estás implementando mal OOP.

Saludos
__________________
Grupo Telegram Docker en Español
  #14 (permalink)  
Antiguo 12/03/2014, 18:09
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Respuesta: ¿como acceder a un metodo de otro prototipo?

normalmente para aceder a un recurso de una itnerfaz de prototipo, uso los objetos, pero queria hacerlo sin tener que recurrir a instanciar primero los objetos, es decir, hacer una declaración entre interfaces.
  #15 (permalink)  
Antiguo 15/03/2014, 09:11
 
Fecha de Ingreso: febrero-2014
Ubicación: Tarragona
Mensajes: 13
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: ¿como acceder a un metodo de otro prototipo?

No son prototipos. son constructores.

para que el constructor PrototipoDos herede las propiedades de PrototipoUno
puedes hacer esto:

PrototipoDos.prototipe=new PrototipoUno()

var obj = new PrototipoDos()

esta instancia de PrototipoDos, cuando no encuentre la propiedad que le indicas,
se dirigira al prototipo del constructor del qual fue instanciado mediante su propiedad interna __proto__.

obj.Nombre //devuelve 'PrototipoUno'

tambien puedes añadir dentro del constructor PrototipoDos lo siguiente:

PrototipoUno.call(this)

obj.Nombre //devuelve 'PrototipoUno'

Etiquetas: metodo, prototipo
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 01:11.