Foros del Web » Programando para Internet » Javascript »

Arreglos de Objetos...

Estas en el tema de Arreglos de Objetos... en el foro de Javascript en Foros del Web. Buenas, ultimamente descubri que javascript admite trabajar con objetos, pero no he encontrado ningun buen pdf que detalle esto. Agradeceria que alguien me tire algun ...
  #1 (permalink)  
Antiguo 12/08/2011, 13:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Arreglos de Objetos...

Buenas, ultimamente descubri que javascript admite trabajar con objetos, pero no he encontrado ningun buen pdf que detalle esto. Agradeceria que alguien me tire algun link, pero sino es mucha molestia que alguien me explique como seria hacer el siguiente codigo de ejemplo que yo hice en php:
Código PHP:
Ver original
  1. <?
  2. class ConjuntoPuntos{
  3.     var $ps;
  4.     function insertar($punto){
  5.         $this->ps[count($this->ps)]=$punto;
  6.     }
  7.     function comparar($punto){
  8.         for($i=0;$i<count($this->ps);$i++)
  9.             if($this->ps[$i]->x==$punto->x && $this->ps[$i]->y==$punto->y)
  10.                 return true;
  11.             else
  12.                 return false;
  13.     }
  14. }
  15.  
  16. class Punto{
  17.     var $x=0;
  18.     var $y=0;
  19.     function __construct($x,$y){
  20.         $this->x=$x;
  21.         $this->y=$y;
  22.     }
  23. }
  24.  
  25. $cp=new ConjuntoPuntos();
  26. $cp->insertar(new Punto(3,2));
  27. $cp->insertar(new Punto(4,6));
  28. $cp->insertar(new Punto(1,4));
  29.  
  30. if($cp->comparar(new Punto(1,1)))
  31.     echo "El punto 1,1 SI esta en la coleccion.<br/>";
  32. else
  33.     echo "El punto 1,1 NO esta en la coleccion.<br/>";
  34.  
  35. if($cp->comparar(new Punto(3,2)))
  36.     echo "El punto 3,2 SI esta en la coleccion.<br/>";
  37. else
  38.     echo "El punto 3,2 NO esta en la coleccion.<br/>";
  39. ?>

Gracias desde ya.
  #2 (permalink)  
Antiguo 13/08/2011, 00:46
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: Arreglos de Objetos...

buenas,
con que busques en la web sobre POO en javascript o sobre creación de objetos, obtendrás muchos materiales para consultar. algunos enlaces que pueden ayudarte; dedicale tiempo especialmente al primero ya que en este se discute un detalle muy importante sobre el modelo de objeto en javascript (prototipo) comparado con clases.
https://developer.mozilla.org/en/Jav...e_Object_Model
http://www.w3schools.com/js/js_objects.asp
http://en.wikibooks.org/wiki/JavaScr...and_Prototypes

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 14/08/2011, 15:26
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Arreglos de Objetos...

Hola,
Haré un similitud en el caso de la siguiente clase:
Código PHP:
Ver original
  1. class Punto{
  2.     var $x=0;
  3.     var $y=0;
  4.     function __construct($x,$y){
  5.         $this->x=$x;
  6.         $this->y=$y;
  7.     }
  8. }
Del cual se pude crear un objeto escribiendo new Punto(x,x), en javascript es muy similar.
Primero necesitas crear el constructor, antes que nada, el constructor es simplemente cualquier función:
Código Javascript:
Ver original
  1. //Puede ser de las siguientes maneras:
  2.  
  3. //Así (que no lo recomiendo)
  4. var Punto = new Function("
  5.    this.x=arguments[0];
  6.    this.y=arguments[1];
  7. ");
  8. // O así(la preferira por casí todos los programadores de Javascript[incluyendome])
  9. var Punto = function( x, y ) {
  10.     this.x = x;
  11.     this.y = x;
  12. };
  13. // O así(la forma tradicional)
  14. function Punto( x, y ){
  15.     this.x = x;
  16.     this.y = x;
  17. }
Una vez creado el constructor, ya puedes crear el prototipo de tu clase, con el que podrás implementar el objeto, para ello simplemente puedes ir agregando las propiedades o métodos del constructor, en tu caso son propiedades (x, y).

Código Javascript:
Ver original
  1. //Los objetos "prototype" y "this", son las palabras clave para transformar una función en un constructor para un objeto
  2.  
  3. // Puede ser así
  4. Punto.prototype.x = "";
  5. Punto.prototype.y = "";
  6.  
  7. // O así
  8. Punto.prototype= {
  9.     x: "",
  10.     y: ""
  11. };
  12. // O como los ejemplos anteriores, es decir, dentro de la función, tal como:
  13. var Punto = function( x, y ) {
  14.     /* Agregando propiedades al objeto "this", ya podrá ser usada como un
  15.         constructor*/
  16.     this.x = x;
  17.     this.y = x;
  18. };
Y para utilizar el constructor, para crear un objeto, simplemente haces de la mísma forma que en PHP, es decir:
Código Javascript:
Ver original
  1. var MiObjeto = new Punto( 9, 1 );

En resumen, puedes hacer todo en la mísma función usando "this" o puedes hacerlo aparte usando "prototype".

Espero que te sirva de algo, saludos.

Última edición por IXtremeLT; 14/08/2011 a las 15:37

Etiquetas: arreglos, php
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:02.