Foros del Web » Programando para Internet » Javascript » Frameworks JS »

clases javascript

Estas en el tema de clases javascript en el foro de Frameworks JS en Foros del Web. hola a todos les paso a comentar mi duda. Estoy practicando de instanciar objetos en javascript simulando una clase digamos el asunto es el siguiente ...
  #1 (permalink)  
Antiguo 10/08/2012, 16:50
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años
Puntos: 47
clases javascript

hola a todos les paso a comentar mi duda.

Estoy practicando de instanciar objetos en javascript simulando una clase digamos el asunto es el siguiente estoy intentando recuperar una propiedad de mi clase mediante un link generado por esta misma clase seria algo asi.

Código Javascript:
Ver original
  1. function clase() {
  2. this.nombre = "clase javascript";
  3. this.id = "20";
  4. this.dibujar = function() {
  5.         $("#divContenedor").append($("<a>Ver Nombre</a>").bind("click",function() {
  6.                 // COMO LLAMO ESTE PARAMETRO ??
  7.             }))
  8.     }
  9. }
  10.  
  11. $(document).ready(function() {
  12.     clase.dibujar();   
  13.     })

en donde puse como llamo este parametro je he probado colocando this.nombre pero claro al estar dentro de la funcion de un elemento tag a hace referencia a si mismo y no a la clase, existe alguna forma de llamar los atributos de la clase como lo estoy intentando? o tengo que morir en llamarlo desde afuera usando clase.nombre ? desde ya muchas gracias!
  #2 (permalink)  
Antiguo 10/08/2012, 18:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 21 años, 11 meses
Puntos: 1284
Respuesta: clases javascript

Hola:

Si hablas de javascript deberías indicar que es $()... aunque supongo que tratas con librerías...

Por lo que veo te falta asignar esa "clase" a alguna variable:

variable_de_la_clase = new clase();

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 10/08/2012, 20:40
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años
Puntos: 47
Respuesta: clases javascript

Hola caricatos gracials x contestar. En efecto por fuera de la clase declaro una variable y le asigno el valor new clase.

Var clase = new clase();

En la clase que estoy haciendo hay una funcion inicial llamada dibujar que crea x dom unos divs y unos links, lo que quiero hacer es asignar a uno de esos links que dibujo dentro de la clase una funcion que me devuelva la propiedad de la clase que yo desee. A proposito me olvide de aclarar uso jquery.

Alguna sugerencia? Desde ya muchas gracias!
  #4 (permalink)  
Antiguo 10/08/2012, 21:16
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 9 meses
Puntos: 127
Respuesta: clases javascript

En Javascript no existen las clases porque es un lenguaje orientado a objetos y que basa su modelo en la clonación de prototipos con posibilidad de extensión ulterior. Las clases se basan en herencia, y los prototipos en clonación.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #5 (permalink)  
Antiguo 10/08/2012, 21:18
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 7 meses
Puntos: 17
Respuesta: clases javascript

Cita:
Iniciado por djaevi Ver Mensaje
hola a todos les paso a comentar mi duda.

Estoy practicando de instanciar objetos en javascript simulando una clase digamos el asunto es el siguiente estoy intentando recuperar una propiedad de mi clase mediante un link generado por esta misma clase seria algo asi.

Código Javascript:
Ver original
  1. function clase() {
  2. this.nombre = "clase javascript";
  3. this.id = "20";
  4. this.dibujar = function() {
  5.         $("#divContenedor").append($("<a>Ver Nombre</a>").bind("click",function() {
  6.                 // COMO LLAMO ESTE PARAMETRO ??
  7.             }))
  8.     }
  9. }
  10.  
  11. $(document).ready(function() {
  12.     clase.dibujar();   
  13.     })

en donde puse como llamo este parametro je he probado colocando this.nombre pero claro al estar dentro de la funcion de un elemento tag a hace referencia a si mismo y no a la clase, existe alguna forma de llamar los atributos de la clase como lo estoy intentando? o tengo que morir en llamarlo desde afuera usando clase.nombre ? desde ya muchas gracias!
Hola, no se de jquery pero necesitas el bind() keyboard si esta disponible para pasar el objeto this en el metodo dibujar..
Código Javascript:
Ver original
  1. function clase() {
  2. this.nombre = "clase javascript";
  3. this.id = "20";
  4. this.dibujar = function() {
  5.         $("#divContenedor").append($("<a>Ver Nombre</a>").bind("click",function() {
  6.                 // COMO LLAMO ESTE PARAMETRO ??
  7.                                // ya podes llamar tu propiedad
  8.                                 console.log(this.nombre);
  9.  
  10.             }.bind(this)))
  11.     }
  12. }
  13.  
  14. $(document).ready(function() {
  15.     clase.dibujar();   
  16.     })

Asi lo tienes adentro del evento click en la funcion anonima esta de callback

eso te deveria de servir.

Si no esta disponible, inspeciona con console.log() de firebug si clase lo tienes defindo en el scope de tu callback..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com

Última edición por utan; 10/08/2012 a las 21:24
  #6 (permalink)  
Antiguo 11/08/2012, 09:19
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años
Puntos: 47
Respuesta: clases javascript

Geniaaal!! funciona muy bien, te hago una consulta solo por curiosidad que es lo que hace el bind(this) para que funcione el codigo? lo pregunto xq mas alla de que funcione me gustaria aprenderlo bien el concepto de lo que hace, mil gracias!!!
  #7 (permalink)  
Antiguo 11/08/2012, 09:51
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 7 meses
Puntos: 17
Respuesta: clases javascript

Cita:
Iniciado por djaevi Ver Mensaje
Geniaaal!! funciona muy bien, te hago una consulta solo por curiosidad que es lo que hace el bind(this) para que funcione el codigo? lo pregunto xq mas alla de que funcione me gustaria aprenderlo bien el concepto de lo que hace, mil gracias!!!
Pasa la referencia de la clase que estas usando con el keyboard this ... al hacer
esto tienes todas las propiedades y metodos de la clase disponible para ser utilizado en el scope de las funciones anomimas o tambien llamadas callbacks.

pero ojo una vez haces esto el objeto this ya no referencia el elemento al cual el evento clic estaba atachado o pegado..

tendras que usar el argumento en callback ejemplo:

Código Javascript:
Ver original
  1. function agregaeventoclick(){
  2.              
  3.               // dentro de la funcion agregaeventoclick , this esta disponible
  4.  
  5.              element.addEventListener('submit' , function(ev){
  6.  
  7.                              //aqui no tenes referenciado la clase con el this
  8.                              this.otherproperty;     // indefinido
  9.                            
  10.             }
  11.                  
  12.            }
  13.  
  14.             function agregaeventoclick(){
  15.              
  16.              element.addEventListener('submit' , function(ev){
  17.  
  18.                              /*   ya tenemo la referencia this de toda la clase
  19.                               *   metodo y propiedades disponibles
  20.                               */
  21.                              this.otherproperty;     //definido al fin
  22.  
  23.                             /*  por pasar this en este scope
  24.                              *  this ya no referencia a el elemento que fue cliqueado
  25.                              *  lo encontraras ahora en la variable del callback
  26.                              */
  27.                            console.log(ev);
  28.                            
  29.             }.bind(this)// pasamos la referencia this a el callback
  30.                  
  31.            }

Ya me enrolle bueno espero me entiendas..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #8 (permalink)  
Antiguo 11/08/2012, 13:58
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años
Puntos: 47
Respuesta: clases javascript

jaja si creo que te entendi el this ahora hara referencia a la clase y no al objeto $("<a>"); mas o menos quedo claro jajaj muchas gracias !!!

Etiquetas: clases, funcion, javascript
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 04:02.