Un saluto a tutti, premetto che sto lavorando con javascript da meno di tre settimane ma mi sono imbattuto nel seguente problema: come posso passare valori al metodo init() di un mio ipotetico oggetto obj che passerò come argomento a Core.start()?
Vediamo il primo esempio in cui si crea prima un costruttore e poi si istanza un oggetto:
	
	
	
		
il risultato, che un poco mi attendevo, è "undefined", questo presumo derivi dal fatto che la funzione init() ( metodo) viene eseguita come "listener" per l'oggetto "window" sull'evento "load" e quindi il "this" di "this.saluto" si riferisce a window. 
Viene confermato dal seguente test:
	
	
	
		
come messaggio otteniamo [object Window] che conferma le aspettative.
La soluzione che ho trovato usa la dichiarazione con "var" di una variabile "privata":
	
	
	
		
il risultato questa volta è il messaggio "lunga vita e prosperità" ma non ho capito perché funziona, vi ringrazio anticipatamente per il vostro aiuto.
				
			Vediamo il primo esempio in cui si crea prima un costruttore e poi si istanza un oggetto:
		Codice:
	
	function InitTest(saluto) 
{ 
    this.saluto=saluto; 
    this.init=function() 
    { 
       alert(this.saluto); 
    }; 
} 
var obj = new InitTest("lunga vita e prosperità"); 
Core.start(obj);
	Viene confermato dal seguente test:
		Codice:
	
	function InitTest() 
{ 
   this.init=function() 
   { 
      alert(this.toString()); 
    }; 
} 
var obj = new InitTest(); 
Core.start(obj);
	La soluzione che ho trovato usa la dichiarazione con "var" di una variabile "privata":
		Codice:
	
	function InitTest(s) 
{ 
   var saluto=s; 
   this.init=function() 
   { 
       alert(saluto); 
    }; 
} 
var obj = new InitTest("lunga vita e prosperità"); 
Core.start(obj);