【发布时间】:2020-11-27 02:27:08
【问题描述】:
我想重写 JSON.stringify 以使用 json-stringify-safe 模块以避免出现循环错误。
这是我的代码:
(function () {
const getSerialize = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = (obj, replacer, spaces, cycleReplacer) => {
return stringifyCore.apply(this, [obj, getSerialize(replacer, cycleReplacer), spaces]);
};
}());
我也试过了:
const getSerialize = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = function (obj, replacer, spaces, cycleReplacer) {
return stringifyCore(obj, getSerialize(replacer, cycleReplacer), spaces);
};
我收到一个错误:
超过最大调用堆栈大小
这里的解决方案对我不起作用.. Overriding JSON.stringify causing error
有什么想法吗?
【问题讨论】:
-
如果你需要使用
this,你可能不想使用箭头函数。 -
在我的第二个代码中,我没有使用箭头函数,甚至没有这个
-
这个实现的目标是什么?我正在查看readme,它看起来应该是替代品。看起来你正在尝试做其他事情。
-
您可能打算从函数中调用
getSerialize函数。也许你需要做const {getSerialize} = require(...); -
此实现的目标是在我的应用程序中继续使用 JSON.stringify,而不是更改所有从 json-stringify-safe 模块中对 stringify 函数的引用
标签: json overriding stringify