Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] defineProperty vs Prototype

Estas en el tema de defineProperty vs Prototype en el foro de Javascript en Foros del Web. Buenas Alguien tiene clara la diferencia y cuando usar usa sobre la otra ? Gracias!...
  #1 (permalink)  
Antiguo 22/06/2014, 20:12
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
defineProperty vs Prototype

Buenas

Alguien tiene clara la diferencia y cuando usar usa sobre la otra ?

Gracias!
__________________
Salu2!
  #2 (permalink)  
Antiguo 22/06/2014, 20:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: defineProperty vs Prototype

Que la primera es más reciente que la segunda.

Además, con la primera puedes definir varias propiedades y métodos a la vez, aunque claro, con la segunda también puedes hacerlo utilizando un objeto literal.

Código Javascript:
Ver original
  1. var ejemplo = new Function();
  2.  
  3. ejemplo.prototype = {
  4.     foo: "bar",
  5.     baz: function(){
  6.         console.log(this.foo);  
  7.     }
  8. };
  9.  
  10. var a = new ejemplo();
  11. a.baz(); //Imprime 'bar'

Mientras que con la primera, defines propiedades, las cuales pueden tener descriptores, siendo estos únicos.

Código Javascript:
Ver original
  1. var ejemplo = new Object();
  2.  
  3. Object.defineProperty(ejemplo, "foo", {
  4.     value: "bar"
  5. });
  6.  
  7. console.log(ejemplo.foo); //Imprime 'bar'

También así:

Código Javascript:
Ver original
  1. var ejemplo = new Object();
  2.  
  3. Object.defineProperty(ejemplo, "foo", {
  4.     get: function(){
  5.         return "bar";
  6.     }
  7. });
  8.  
  9. console.log(ejemplo.foo); //Imprime 'bar'

Los ejemplos de arriba son bastante pobres, te sugiero leer la documentación existente en donde encontrarás mejores y más extensos ejemplos.

Por otro lado, prototype está definida como una propiedad de Function, mientras que defineProperty, de Object, aunque al fin y al cabo, en JS casi todos son objetos.

Con la primera también puedes definir métodos get y set, algo similar a los getter y setter de PHP. Con la segunda, tendrías que definirlos manualmente.

La documentación existente te puede sacar de dudas:

Prototype
defineProperty

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 22/06/2014 a las 22:04 Razón: Palabra mal escrita
  #3 (permalink)  
Antiguo 22/06/2014, 22:43
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: defineProperty vs Prototype

Alexis88: gracias por tus conceptos...... has sido mas que claro

Buena noche!!!
__________________
Salu2!

Etiquetas: prototype
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 00:59.