PDA

View Full Version : [JS] Variabili


max246
23-08-2007, 17:59
ho un problema... devo passare o meglio usare una variabile fuori dalla classe e modificarla.
Come faccio a tenerla aggiornata senza fare mille return nelle funzioni? riesco a passare il "puntatore" e lavorare su quella variabile?


Aiuto!!!

max246
24-08-2007, 08:53
nessuno???

mi spiego meglio

[CODE]
var test = new Array();

function aa() {
oggetto = new Oggetto();
oggetto.operazione();
( ora devo passare una variabile che usa nella funziona operazione a "test" )

}
[0/CODE]

è possibile?

AlexGatti
24-08-2007, 11:30
nessuno???

mi spiego meglio


var test = new Array();

function aa() {
oggetto = new Oggetto();
oggetto.operazione();
( ora devo passare una variabile che usa nella funziona operazione a "test" )

}



è possibile?
non se capito che devi fare quando dici ora devo passare una variabile che usa nella funziona operazione a "test". Manca il soggetto di "usa".

se devi modificare test o te lo fai passare come parametro oppure se è una (bruttissima) variabile globale, lo puoi modificare direttamente, del tipo:
Test[0]= oggetto;

max246
24-08-2007, 14:07
Allora ho fatto dei test....
Nella mia classe ho creato la variabile this.test e ho cercato di modificarlo in questo metodo:

function InviaRichiesta(type,url,nome) {
this.test[0] = 'aa';
nomeogg = nome;
objHttp.open(type,url,true);
objHttp.onreadystatechange = this.Operazione;
objHttp.send(null);
}

e funziona.. ma nel metodo
function Operazione() {
}
se cerco di modificarlo non riesco... forse questo perchè lo chiamo in questo modo:
objHttp.onreadystatechange = this.Operazione;
Ora io vorrei passare dei dati che leggo in xml con il medoto "operazione" a una variabile della classe... COME FACCIO?
Ho pensato di mettere in un div il contenuto che mi serve.. ma è uno schifo far in questo modo!

AlexGatti
24-08-2007, 14:16
Allora ho fatto dei test....
Nella mia classe ho creato la variabile this.test e ho cercato di modificarlo in questo metodo:

function InviaRichiesta(type,url,nome) {
this.test[0] = 'aa';
nomeogg = nome;
objHttp.open(type,url,true);
objHttp.onreadystatechange = this.Operazione;
objHttp.send(null);
}

e funziona.. ma nel metodo
function Operazione() {
}
se cerco di modificarlo non riesco... forse questo perchè lo chiamo in questo modo:
objHttp.onreadystatechange = this.Operazione;
Ora io vorrei passare dei dati che leggo in xml con il medoto "operazione" a una variabile della classe... COME FACCIO?
Ho pensato di mettere in un div il contenuto che mi serve.. ma è uno schifo far in questo modo!

o passi test come parametro al metodo "operazione"
oppure se test è una variabile globale (è dichiarata fuori dai metodi) allora la puoi utilizzare tranquillamente in operazione.
La riga:
objHttp.onreadystatechange = this.Operazione;
è sbagliata in quanto assegna a onreadystatechange (perchè poi?) il metodo Operazione, il metodo proprio, la funzione, non il risultato che quella funzione ritorna.
voglio dire che dopo quella riga tu potresti chiamare
var obj = objHttp.onreadystatechange();
e avresti lo stesso risultato di
var obj = this.Operazione();

max246
24-08-2007, 14:23
o passi test come parametro al metodo "operazione"
oppure se test è una variabile globale (è dichiarata fuori dai metodi) allora la puoi utilizzare tranquillamente in operazione.
La riga:
objHttp.onreadystatechange = this.Operazione;
è sbagliata in quanto assegna a onreadystatechange (perchè poi?) il metodo Operazione, il metodo proprio, la funzione, non il risultato che quella funzione ritorna.
voglio dire che dopo quella riga tu potresti chiamare
var obj = objHttp.onreadystatechange();
e avresti lo stesso risultato di
var obj = this.Operazione();
se non sbaglio.. mi hanno detto di fare cosi per lo stato della pagina che lo controllo con:
if (objHttp.readyState == 4) {

Ma come ti ho detto ho messo come globale la variabile ma se faccio in quel modo non funziona....
Ora mi spieghi come faccio a passare un parametro al metodo senza fargli fare una copia? MEtto un & prima?