如何以编程方式调用JS setter函数

时间:2017-12-03 14:13:45

标签: javascript reactjs ecmascript-6

我有一个商店类,有这样的模型

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;}

我想让我的setValue调用setter函数,我该怎么做?

2 个答案:

答案 0 :(得分:1)

与反应无关。要触发setter,您只需指定值this.FirstName = value;

Setters和getter是在使用值时执行的函数,就像普通属性一样。如果你想在init

上,你需要在方法或构造函数中执行此操作
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;}
}

答案 1 :(得分:1)

如果您想使用方法在模型上设置key-value,可以执行此操作。

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)