Foros del Web » Programando para Internet » Javascript »

¿Cómo obtener nombre objeto instanciado a la clase?

Estas en el tema de ¿Cómo obtener nombre objeto instanciado a la clase? en el foro de Javascript en Foros del Web. Hola muchachos, ojalá me puedan ayudar con algo que he estado buscando en internet y que no he encontrado. Se trata de lo siguiente: supongamos ...
  #1 (permalink)  
Antiguo 09/10/2010, 10:43
de-troit
Invitado
 
Mensajes: n/a
Puntos:
¿Cómo obtener nombre objeto instanciado a la clase?

Hola muchachos, ojalá me puedan ayudar con algo que he estado buscando en internet y que no he encontrado. Se trata de lo siguiente:

supongamos que tengo una clase llamda Clase:

Código Javascript:
Ver original
  1. //Declaro creación de clase:
  2. var Clase = function() {
  3.     //Creo método para mostrar el nombre del objeto:
  4.     this.mostrarNombreObj = function() {
  5.         alert(//el nombre);
  6.     }
  7. }
  8.  
  9. //Y ahora creo un objeto:
  10. var miObj = new Clase();
  11.  
  12. //llamo al método mostrarNombreObj:
  13. miObj.mostrarNombreObj(); //La idea es que alerte: "miObj"

La idea es poder obtener el nombre del objeto en cuestión instanciado a la clase, sin pasarlo como parámetro al crear el objeto.

Alguien sabe cómo hacerlo?

Saludos, por mientras seguiré buscando en internet, si pillo la solución lo posteo porsi alguien anda buscando lo mismo.

Saludos foreros y gracias! :D
  #2 (permalink)  
Antiguo 09/10/2010, 11:08
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

nunca lo he intentado y me parece que podria ser un tanto complejo. encontre el siguiente tema en otro foro que habla al respecto. http://codingforums.com/showthread.php?t=137124. quizas puedas sacar una idea o replantear tu necesidad.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 09/10/2010, 11:45
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

Mmm, leí pero no entendí mucho los códigos que programaron, en todo caso creo que le dieron otro tipo de solución distinta de la que busco.

El prototipo no guarda algún registro del nombre del objeto en cuestión instanciado a la clase en algún atributo del mismo objeto?

Saludos!
  #4 (permalink)  
Antiguo 09/10/2010, 13:19
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

con este hack puedes obtener las variables globales
Código Javascript:
Ver original
  1. //Declaro creación de clase:
  2. var Clase = function() {
  3.     //Creo método para mostrar el nombre del objeto:
  4.     this.mostrarNombreObj = function() {
  5. for (var nombre in this.global)
  6. if (this.global[nombre] == this)
  7. alert(nombre);
  8.     }
  9. }
  10.  
  11. Clase.prototype.global = this;
  12.  
  13. //Y ahora creo un objeto:
  14. var miObj = new Clase();
  15.  
  16. //llamo al método mostrarNombreObj:
  17. miObj.mostrarNombreObj(); //La idea es que alerte: "miObj"
  #5 (permalink)  
Antiguo 09/10/2010, 13:55
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

Hola, primero que todo, muchas gracias por la solución, pero no entiendo el código. Qué significaría el "&#160"?

Saludos!
  #6 (permalink)  
Antiguo 09/10/2010, 14:51
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

A veces el foro cambia algunos carácteres por sus representaciones HTML, en este caso &#160 significa " ", es decir, un espacio en blanco. He aquí una tabla de todas las representaciones HTML.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 09/10/2010, 14:58
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

Gracias _cronos2, me lo imaginé porque cuando lo pegaba en el post justamente al visualizarlo me salía el espacio en blanco, saludos!
  #8 (permalink)  
Antiguo 09/10/2010, 15:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

en este caso el foro ha insertado y no ha sabido interpretar la entidad html del espacio sin sin separación. puedes eliminarla.
edito: ya está respondido
  #9 (permalink)  
Antiguo 09/10/2010, 15:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

personalmente no le encuentro sentido el querer obtener el nombre de una propiedad cuando en principio de alguna manera tienes que indicarla por ti mismo. tampoco pude pensar en algun caso en que sea estrictamente necesario. adicional, en algunos casos pudiera devolver resultados inesperados. particularmente cuando dos o mas variables hacen referencia a la misma ubicacion de memoria. por ejemplo self y window siempre hacen referencia a la misma ventana. si no hay marcos, adicionalmente parent y top se refieren al mismo objeto.

Código:
Object.prototype.getInstanceName = function(instance){
for(var prop in this) if(this.hasOwnProperty(prop) && this[prop] === instance) return prop;
throw new Error("Instance not declared in this scope.");
}

self.getInstanceName(self); // puede devolver self, top, parent, o window;
document.getInstanceName(document.body); // devuelve body;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 09/10/2010 a las 16:52 Razón: "pude" en lugar de "puede", se confundia el mensaje
  #10 (permalink)  
Antiguo 09/10/2010, 16:47
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo obtener nombre objeto instanciado a la clase?

Ok, entiendo tus razones, por un lado tienes razón.
Bueno, muchas gracias por sus post, adiós!

Etiquetas: clase, nombre, objeto
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 14:09.