Ver Mensaje Individual
  #7 (permalink)  
Antiguo 03/03/2009, 10:50
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Object.extend() mas corto

A ver...

Preguntaste por el método Object.extend() de Prototype, ¿no? Ese es el que puse antes, como decía copiado tal cual del código fuente de prototype.js
Ahora, no sé a qué te refieres con extender "objetos" o con eso de poner objetos entre comillas, o con "extender métodos". Tampoco sé qué quieres decir con "con todas sus especificaciones".



Así que vamos por partes. ¿Qué es lo que hace Object.extend?

Ese código sacado de Prototype lo que hace es exactamente copiar todo el contenido del objeto "source" al objeto "destination".

Es decir, que yo puedo tener esto:

Código javascript:
Ver original
  1. Object.extend = function(destination, source) {
  2.     for (var property in source) destination[property] = source[property];
  3.     return destination;
  4. };
  5. var unObjeto = { edad: 23, altura: 177, nombre: "Lolo" }
  6.  
  7. var otro = { ocupacion: "científico", saludar: function() { alert("Hola, soy " + this.nombre) } };
Y ahora voy y hago esto:

Código javascript:
Ver original
  1. Object.extend(unObjeto, otro);

Entonces ahora podré hacer:
Código javascript:
Ver original
  1. unObjeto.saludar();
  2. alert(unObjeto.ocupacion);

Bien, eso es lo que hace el Object.extend de Prototype. Y es lo que generalmente se viene conociendo como "extender objetos", es decir, añadir propiedades a un objeto.



Ahora, ¿qué es lo que quieres hacer tú que es distinto de esto?