我正在研究并且还想扩展Date对象,而我喜欢做的一件事情就是能够访问原型中构造函数中传递的值。目的是根据我将要“拦截”该值时要建立的一些标准来更改该值。
在此示例中,我希望能够访问在new Date()
期间传递的值“ 2019-03-31”。
我知道有Moment JS,也许它可以满足我的需求……但是我的目标是研究“原型”的未来使用。
Date.prototype.myTest = function myTest() {
let datetime = this;
return 'ok';
};
let dt = new Date("2019-03-31").myTest();
答案 0 :(得分:1)
如果要扩展ExpressionWrapper
对象,一种非常简单的方法是将ES6类与ExpressionWrapper
一起使用。与尝试修改内置日期构造函数相比,它更容易并且可能是一个更好的主意。在构造函数中,您可以执行任何操作,包括保存原始输入以供以后使用或立即使用:
Date
答案 1 :(得分:0)
很抱歉,但是您从Date documentation中可以看到,作为参数传递给构造函数的字符串没有保存。您只能访问某些getter和setter方法来修改Date。 因此,您可以在函数中以自己喜欢的特定格式重建日期,而不必获取原始字符串。
解决问题的唯一方法是使用ES6并扩展Date类。
class TestDate extends Date{
constructor(date){
super(date)
this.const_date = date // save input
}
myTest() {
return this.const_date;
};
}
console.log((new TestDate("2019-04-16")).myTest())