Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何以编程方式调用JS setter函数_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

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

Javascript 如何以编程方式调用JS setter函数,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个store类,它有这样一个模型 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) {

我有一个store类,它有这样一个模型

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函数,我该怎么做?

它与react无关。要触发setter,只需分配值
this.FirstName=value

setter和getter是在像普通属性一样使用value时执行的函数。如果您想在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;}
}

若要使用方法在模型上设置
键值
,可以这样做

classmystore{
构造函数(){
this.model={}
}
setValue(名称、值){
this.model[name]=值;
}
}
var store=新的myStore;
store.setValue('foo','bar')
store.setValue('foo1','bar1')

log(store)
在运行时,我没有这些信息,我正在为我的所有存储使用基类来设置其模型的值。我更新了问题desc@Pacman我已经更新了我的答案,您基本上在这个上设置了属性,如果name是
“FirstName”
,它将触发setter,否则它将在实例上更新普通属性。