On Fri, 1 Jul 2005 20:15:03 +0200, Max wrote:
Quote:
Salve,
è possibile "watchare" le proprietà di un oggetto per emulare le
funzionalità delle proprietà come .NET? |
In Javascript (Netscape, Gecko) esistono due metodi chiamati appunto
"watch" e "unwatch", che servono per monitorizzare cambiamenti di valore in
una proprietà.
Te li sconsiglio caldamente, però, per questo genere di cose. Innanzitutto,
il loro scopo non è propriamente quello che cerchi tu; seconda di poi se ti
servono per un sito internet ti funzioneranno solo sui vecchi Netscape e
browser gecko based.
Quote:
Non è per .NET (chissenefrega), ma quando abbiamo una proprietà x di un
oggetto o è possibile modificarla sia con o.setX (valore) che con o.x =
valore. Quindi sarebbe utile che quando si accede a o.x il watch richiami il
setX() e ne assegni il valore esatto a x. |
Nella programmazione ad oggetti, i getter/setter sono nati fatti a "mano":
o.setX(123);
alert ( o.getX() );
a livello di oggetto avrai:
function test(){
this.x=0;
this.setX=function(val){this.x=val}
this.getX=function(){return this.x}
return this;
}
var o=new test();
Volendo, in gecko è stato implementato a livello di linguaggio il concetto
di getter/setter, in modo da far scanetare delle funzioni in assegnazione o
lettura proprietà.
A tal proposito ti rimando nella reference di js 1.5; ricordandoti sempre
che tali istruzioni funzionano unicamente nei browser gecko-based.
--
var SEI = "1+5", NOVE = "8+1";
// dump TheAnswerToLifeTheUniverseAndEverything :
alert("Cosa ottieni moltiplicando "+
eval(SEI)+" per "+eval(NOVE)+"? "+eval(SEI+"*"+NOVE));