如何调试修改Date.protype.toLocaleString()的依赖项



背景:

我在项目中使用了Litepicker库,发现了一个错误,显示的月份名称一个月一个月地偏离。例如";二月";被标记为";一月";。日期导出正确。从零开始的几个月不是问题。只有翻译是";一比一";。

当我试图重现这个问题时,看起来Litepicker工作正常。文档中说它在内部使用Date.prototype.toLocaleString(),所以我相信我们的一个依赖项会修改它

问题:

如何检查哪个依赖项/代码段修改了Date.prototype?有没有一种反映机制可以告诉我是谁在修补它?

您可以使用Object.defineProperty:

Object.defineProperty(Date.prototype, 'toLocaleString', {
set(newValue) {
console.log('Tries to modify Date.prototype.toLocaleString');
console.trace();
}
})

最新更新