我正在使用ES5 getter和setter以设置<table>.<entry> = <value>
将值写入本地缓存的方式获取数据库条目,然后将值与DB同步。
getter的工作是从缓存中获取条目(如果可用),或者如果没有则将结果从数据库中拉出并返回。但它也应该调用setter来缓存结果以供将来查询。
问题是,我不知道如何从getter中调用setter。我尝试了this.<entry> = <value>
,<table>.<entry> = <value>
和<entry> = <value>
,所有这些都导致了重新声明const(<table>
)的错误。
有没有办法做到这一点?
编辑:以下是复制问题的最小示例:
const table = {
_entry: "Something",
get entry(){
/*Do Stuff*/
this.entry = "Something else"; // Exception: SyntaxError: redeclaration of const table
return this._entry;
},
set entry(value){
/*Do Stuff*/
this._entry = value;
}
}
答案 0 :(得分:1)
从课堂内部(可以这么说),没有必要通过getter访问类成员。您可以按照建议使用this
。如果您不被允许这样做,则意味着您的声明禁止它。如果您需要更改内部状态,请评估更改声明。没有提供代码很难说更多。