背景:
我在项目中使用了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();
}
})