2017-12-03 5 views
-1

ich einen Laden Klasse aufrufen, die ein Modell als solcheWie JS Setter Funktion programmatisch

class baseStore { 
setValue(name, value) { 
     this.model.setValue(name,value); 
     } 
    } 
class myStore extends baseStore{ 
    let model = {}; 
    get FirstName() { return this.model.FirstName;} 
    set FirstName(firstName) { this.model.FirstName = firstName;} 

Ich möchte meine setValue den Setter funciton nennen hat, wie kann ich das tun?

Antwort

1

Es ist nicht verwandt zu reagieren. Um den Setzer auszulösen, müssen Sie nur den Wert this.FirstName = value; zuweisen.

Setter und Getter sind Funktionen, die ausgeführt werden, wenn der Wert wie normale Eigenschaft verwendet wird. Und Sie müssen diese in der Methode oder Konstruktor tun, wenn Sie auf init wollen

class baseStore { 
    setValue(name, value) { 
     this[name] = value; 
    } 
} 
class myStore extends baseStore{ 
    let model = {}; 
    get FirstName() { return this.model.FirstName;} 
    set FirstName(firstName) { this.model.FirstName = firstName;} 
} 
+0

In Runtime nicht, daß ich diese Informationen habe, ich bin eine Basisklasse für alle meine Geschäfte zu setValue ihres Modells. Ich aktualisierte die Frage desc – Pacman

+0

@Pacman Ich habe meine Antwort aktualisiert, Sie im Wesentlichen Eigenschaft auf diesem und es wird Setter auslösen, wenn der Name ist "FirstName" oder es sonst normale Eigenschaft auf Instanz aktualisieren wird. – jcubic

1

Wenn Sie Methode verwenden möchten key-value auf Modell zu setzen, dies zu tun.

class myStore { 
 
    constructor() { 
 
    this.model = {} 
 
    } 
 

 
    setValue(name, value) { 
 
    this.model[name] = value; 
 
    } 
 
} 
 

 
var store = new myStore; 
 
store.setValue('foo', 'bar') 
 
store.setValue('foo1', 'bar1') 
 

 

 
console.log(store)