Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/05/2013, 11:40
Avatar de Aijoona
Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: ¿Modelador de Objetos?

Este código está mal:

Código Javascript:
Ver original
  1. var i = 0;
  2.      
  3.     var cadena = '';
  4.      
  5.     for(var j=0;j<100;j++){  
  6.        var ['variable'+i] = 1;
  7.        cadena.concat(['variable'+i]);
  8.        i++;
  9.     }

La sintaxis de llaves es para declarar o acceder a propiedades de objetos, no a variables.

---

Los objetos no tienen 'nombre', vos podes nombrar la referencia que haces hacia él.

Ej:

Código Javascript:
Ver original
  1. var profile = new Profile;

En ese caso, 'profile' es simplemente una variable que _apunta hacia_ el objeto. De más está decir que el objeto no sabe de la existencia del nombre de la variable ni se ve afectada por el mismo.

Es díficil hablar sin saber bien la situación, pero vamos a suponer. Pequeño ejemplo de lo que logro entender:

Código Javascript:
Ver original
  1. // Nuestras "clases"
  2. function Person(name, lastname, age) {
  3.   this.name = name;
  4.   this.lastname = lastname;
  5.   this.age = age;
  6. }
  7.  
  8. function Developer(name, lastname, age, langs) {
  9.   Person.call(this, name, lastname, age);
  10.   this.langs = langs || []; // Esto es el operador or, en una forma clasica
  11. }
  12.  
  13. // Extendemos
  14. Developer.prototype = new Person;
  15.  
  16. // Un par de instancias
  17. var phpDev = new Developer('Jose', 'Pelotas', 32, ['PHP']);
  18. var jsDev = new Developer('Juana', 'Amor', 33, ['JS']);
  19.  
  20. // Estas son expresiones, y el comentario es el valor
  21. // de las mismas
  22. phpDev.lang; // ['PHP']
  23.  
  24. var Company = {
  25.   employees: [],
  26.   teach: function(what) {
  27.     for(var i = 0, l = this.employees.length; i < l; i++) {
  28.       this.employees[i].langs.push(what);
  29.     }
  30.   }
  31. }
  32.  
  33. // Agregamos los programadores a la empresa
  34. Company.employees.push(phpDev);
  35. Company.employees.push(jsDev);
  36.  
  37. // Verificamos
  38. Company.employees.length; // 2
  39.  
  40. // Verificamos parte 2
  41. Company.employees[1].langs; // ['JS']
  42.  
  43. // Enseñamos java a nuestros pobres empleados
  44. Company.teach('Java');
  45.  
  46. // Y verificamos nuevamente
  47. Company.employees[1].langs; // ['JS', 'Java']



PD: Acostumbrate a indentar el código, ya sea a 2 o a 4 espacios (o un tab, por que no).
PD2: Corregí un pequeño error, no estaba llamando al constructor de Person dentro de Developer.
__________________
blog | @aijoona

Última edición por Aijoona; 22/05/2013 a las 12:35