2014-12-24 7 views
5

Ho creato una funzione "set" a cui verrà attivata durante la modifica del valore dell'oggetto my "my.bject.user". Quindi, quando sto cambiando il valore sto diventando attento. ma quando aggiorno il valore all'interno dell'oggetto "myObject.newuser [0] .id" il set non sta chiamando. Come cambiare il codice in modo tale che se qualsiasi valore interno viene modificato, il set globale dovrebbe funzionare. cioè per questo codice dovrei ottenere due avvisi.Setter Javascript per valore dell'oggetto

var myObject = {}; 
 
myObject.user; 
 
    
 
Object.defineProperty(myObject, 'newuser', { 
 
    get: function() { return this.user;}, 
 
    set: function(value) { alert('Updated');this.user=value;} 
 
}); 
 
    
 
myObject.newuser = [{"id":"user1"}]; 
 
myObject.newuser[0].id="user2";

+3

Bene, si sta modificando l'oggetto interno che, naturalmente, non attiverà il setter. Raccomando di implementare la struttura dati con l'interfaccia setter. Sarebbe più semplice. – dfsq

risposta

0

Beh è necessario modificare la proprietà myObject.newuser[0].id-myObject.user[0].id allora sarà impostare il nuovo valore per il valore di utente esistente.

Perché si modifica il valore aggiunto in precedenza con un nuovo valore.

Si prega di fare riferimento a MDN link per maggiori dettagli sul setter.

Problemi correlati