Per farlo nella maniera che hai descritto devi usare i getters e i setters. Purtroppo però è una sintassi che è diventata standard da relativamente poco tempo, fino a qualche anno fa ogni browser aveva la sua (lo so che per chi è abituato col c è una cosa assurda… ma benvenuto nel mondo di javascript e della guerra tra browsersOriginariamente inviato da giuseppe500
vi chiedo questo per il seguente motivo:
ho un oggetto camera e un oggetto render.
L'oggetto camera ogni volta che muovo il mouse crea una serie di matrici.
L'oggetto render ogni volta che nell' oggetto camera cambia la posizione o qualcosa dovrebbe andare a prendersi queste matrici ed applicarle(è l'oggetto che fa il draw in webgl).
l'oggetto camera è incapsulato nell oggetto render .
A questo punto nelll'oggetto camera dovrebbe esserci un riferimneto all oggetto render , per fare render.Update();
e nell oggetto render dovrebbe esserci un riferimento all' oggetto camera , per andare a prendere le matrici , tipo Camera.GetAllMatrix().
com ' è il modo migliore per fare questo in js?). Comunque, ecco la sintassi standard (recente):
- Object.defineProperty (è il metodo completo, consente di specificare se la chiave di un oggetto è scrivibile, enumerabile e configurabile, oltre ai getters e ai setters),
- get (consente di eseguire delle operazioni ogni qualvolta l'interprete tenta di accedere al valore della chiave di un oggetto),
- set (consente di eseguire delle operazioni ogni qualvolta l'interprete tenta di assegnare un valore a una chiave di un oggetto – è questo quello che t'interessa!).
Queste sintassi in sostanza ti consentono di generare un “evento” ogni qualvolta i valori dell'oggetto camera vengono modificati. Tuttavia il mio consiglio, vista la standardizzazione recente nei vari browsers dei getters e dei setters, è di scrivere i valori dell'oggetto camera tramite una funzione che, una volta chiamata, aggiorni anche l'oggetto render. È anche vero però che, siccome stai scrivendo un'applicazione webgl, potresti fregartene del tutto dei vecchi browsers, visto che la tua applicazione non sarebbe supportata dai vecchi browsers a prescindere dai getters e dai setters. Valuta tu.
Io credo invece che ti possa dare una marcia in più per capire in profondità cos'è javascript, a differenza dei tanti utenti che partono direttamente da qui. Tra l'altro credo che cominciare da subito a lavorare con gli oggetti sia il modo migliore per comprendere a fondo questo potentissimo linguaggio.Originariamente inviato da giuseppe500
perchè mi sto accorgendo che sto utilizzando js come se fosse c++ e questo non è molto corretto
P.S. Per curiosità… che tipo di applicazione stai scrivendo?![]()

). Comunque, ecco la sintassi standard (recente):
Rispondi quotando