0

所以我在 JSON 字符串中格式化数据,我需要在 reviver 内部使用我的应用程序上下文(如 this.name 等)。

reviver的代码示例:

formatReviver = function (key, value) {

 if(context.name === value)
 //do stuff

}

但显然这在 Reviver 中不起作用。

我的一个想法是在参数中使用默认值:

formatReviver = function (key, value, context = window) {

 if(context.name === value)
 //do stuff

}

还有其他想法吗?

4

1 回答 1

0

您可以将 reviver 绑定到当前上下文。

formatReviver = (function (key, value) {
 if(this.name === value)
 //do stuff

}).bind(this)

或者使用箭头函数,它会自动绑定this.

formatReviver = (key, value) => {
 if(this.name === value)
 //do stuff
}
于 2020-08-13T15:45:53.737 回答