在创建新的Date对象之前,是否可以重写Date构造函数以检查有效日期?例如,在某些情况下,日期是动态创建的,而错误的日期是创建的。因此,如果我创建let d = new Date(2019, 1, 31)
,我希望日期构造函数检查日期是否在要创建的月份中的几天之内。
因此,当前如果我运行let d = new Date(2019, 1, 31)
,它将创建一个日期为2019年3月3日,因为2月只有28天。我希望日期构造函数首先进行验证,如果日期超出范围,则将日期创建为let d = new Date(2019, 1, 28)
,即2019年2月28日。
答案 0 :(得分:0)
当然,您可以覆盖JS中的所有内容:
const OriginalDate = Date;
Date = function(...args) {
// fancy checks
return new OriginalDate(...args);
};
但是请注意:更改JS内部结构可能会破坏页面上某处的代码,因此,在大型生产项目中绝对不要这样做。