Newsgroup: it.comp.lang.javascript
Titolo: Array di tipi personalizzati. (Da Arrays + Frames)

Passiamo ai fatti, Prima di tutto costruiamoci l'array :
function Catalogo ()  // Creo un mio Tipo (Costruttore) per gestire il
catalogo personalizzato
{
this.Marca = " ";
this.Modello = " ";
this.Cilindrata = " ";
this.Anno = " ";
this.AggiungiAutomobile = AggiungiAutomobile;
this.length = 1;
}
da richiamare con il classico operatore new
var CatalogoPersonalizzato = new Catalogo ();
il costruttore Catalogo ha un metodo AggiungiAutomobile... ecco qui la
function
function AggiungiAutomobile (NewMarca, NewModello, NewCilindrata, NewAnno)
{
this.length += 1;  // Incremento la lunghezza dell'array
this[this.length].Marca = NewMarca;
this[this.length].Modello = NewModello;
this[this.length].Cilindrata = NewCilindrata;
this[this.length].Anno = NewAnno;
}
In pratica la mia idea era.... Creo un tipo catalogo personalizzato con un
metodo che aggiunge prodotti di volta in volta.... un po come il carrello
della spesa.
CatalogoPersonalizzato.AggiungiAutomobile ("Ferrari","F40","BOH","1999");
Logicamente il tutto funziona...... in pratica non va niente......
( Quando vengono richiamate le proprietà si blocca il programma... non
riconosce this[this.length].Marca = NewMarca;
Ho un esempio semplice della MS che funziona alla grande.... ma che non
prevede le proprietà nel costruttore.. lo riporto :
function addItem(newItem)  // Define a function to extend the list.
{
    this.length += 1;  // Increment the length of the array.
    this[(this.length-1)] = newItem;  // Add the new item, maintaining item
numbering.
}
function shoppingList(firstItem) // Define a "shopping list" object.
{
    this.length = 2;  // Number of properties in the object, not including
this one.
    this.addItem = addItem;   // Include the addItem function as a method.
    this[(this.length-1)] = firstItem;  // The first item is numbered 1.
}
var myList = new shoppingList("Milk");
myList.addItem("Eggs");  // Use the method to add Eggs, which become item 2.
myList.addItem("Breadfruit");  // Breadfruit becomes item 3.
Fatta tutta questa premessa..... la domanda che mi pongo è quella del
subject.... come posso creare un array di un mio costruttore e potervi
quindi accedere con la sintassi del tipo
MioCostruttore[Posizione].Proprietà1 ?
Scusate la lunghezza del post..... spero di essere stato chiaro ;)) So già
che tra poco arriverà la risposta di Roberto di 2 righe dicendo...... Ciao,
è semplice.... basta fare cosi : ............... Bye Ro<*¿*>berto.
Alla prossima Ragazzi.
Alessandro.

this.AggiungiAutomobile = AggiungiAutomobile;
... non gli passi i valori
NewMarca, NewModello, NewCilindrata, NewAnno...
--
Bye
Ro<*¿*>berto

 wrote in message
7pbce1$elp$1...@diesel.cu.mi.it...


Sarebbe qualcosa del tipo new Array (Rubrica, 50); (Sintassi >inventata
:PP)
Sintassi giusta.!!
;)


 wrote in message
7pbgr8$fmo$1...@diesel.cu.mi.it...


Acccippicciolina!!.. ho bisogno di ferie..
volevo dire, l'array lo crei con:
Ary_Obj= new Array("dato1,"dato2","dato3",1,2,3,window,new Array(false));
ecc. ci metti dentro tutto quello che vuoi anche il rif ad un oggetto
o un altro array..
poi ti ci riferisci con
Ary_Obj[0] // restituisce "dato1" la string..
Ary_Obj[3] // restituisce 1 numero..
Ary_Obj[6] // restituisce l'oggetto window
Ary_Obj[7] [0]// restituisce il valore boleano false.
function Rubrica (Nome,Cognome,Telefono)
{
this.Nome = Nome
this.Cognome = Cognome
thisTelefono = Telefono
}
my_rubrica_ay=Array(new Rubrica("Robero","Borsari","03388522169"));
my_rubrica_ay[my_rubrica_ay.length]=new
Rubrica("Robero","Borsari","03388522169");
alert(my_rubrica_ay[0].Nome);


 wrote in message
7pbjnd$gc5$1...@diesel.cu.mi.it...


vero ?? ;P
Certo che  la facciamo..
... cmq..stavo anche pensando alle mie prossime ferie,
non vedo l'ora!!
:))
--
Bye
Ro<*¿*>berto
Alessandro Palmieri

 wrote in message
7pbqda$hp3$1...@diesel.cu.mi.it...


l'occasione ;)
Grazie mille!!
;)
