要修复Date类,使其在创建新的date实例后不能更改,可以使用以下方法:
function FixedDate() {
var date = new Date();
this.getDate = function() {
return new Date(date);
};
}
var fixedDate = new FixedDate();
console.log(fixedDate.getDate()); // 当前时间
// 尝试修改date实例
fixedDate.date = new Date(2022, 0, 1);
console.log(fixedDate.getDate()); // 仍然是当前时间
const fixedDate = (() => {
const date = Symbol('date');
return class FixedDate {
constructor() {
this[date] = new Date();
}
getDate() {
return new Date(this[date]);
}
};
})();
const instance = new fixedDate();
console.log(instance.getDate()); // 当前时间
// 尝试修改date实例
instance[date] = new Date(2022, 0, 1);
console.log(instance.getDate()); // 仍然是当前时间
这两种方法都可以确保在创建新的date实例后,无法直接修改实例的日期。
领取专属 10元无门槛券
手把手带您无忧上云