Originariamente inviato da Francesca
function _valori(){
this.user=""
this.pwd=""
this.stato=""
}
var dati = new Array()
dati[0] = new _valori()
dati[0].user = "fra"
dati[0].pwd = "fra"
dati[0].stato = "libero"
Mi permetto di storcere il naso di fronte a questa sintassi: non ha molto senso secondo me.
Prima dichiari un costruttore _valori e poi setti le sue proprietà in modo pubblico.
A questo punto tanto valeva scrivere:
codice:
var dati = new Array();
dati[0] = new Object();
dati[0].user = "fra";
dati[0].pwd = "fra";
dati[0].stato = "libero";
...e fregarsene del costruttore _valori. (ricordati i punti e virgola finali!)
La versione che avrei scritto io, però è questa:
codice:
function User(user, pwd, libero) {
this.user = user;
this.pwd = pwd;
this.libero = libero;
}
var dati = new Array(
new User("fra", "fra", true),
new User("fre", "fre", false),
new User("fri", "fri", false),
new User("fro", "fro", true),
new User("fru", "fru", true)
);
Come vedi, con una riga per utente mi sistemo l'elemento nell'Array, perché nel costruttore User setto i valori passati in parametro come proprietà dell'oggetto creato.
Inoltre non è mai bellissimo usare stringhe per definire proprietà booleane, ecco perché io ho usato il true/false. Usando i booleani puoi scrivere delle if molto compatte e leggibili, tipo questa:
codice:
if (dati[0].libero)
alert(dati[0].user + " è libero.");