Javascript:重写日期-如何获取传递给构造函数的值
我正在研究并希望扩展Date对象,我喜欢的一件事是能够访问原型中在构造函数中传递的值。目标是根据一些标准更改值,我将在能够“截取”该值时尽快建立这些标准 在本例中,我希望能够访问在新日期传递的值2019-03-31 我知道有一刻JS,也许它能满足我的需要。。。但我的目标是研究“原型”的未来用途Javascript:重写日期-如何获取传递给构造函数的值,javascript,Javascript,我正在研究并希望扩展Date对象,我喜欢的一件事是能够访问原型中在构造函数中传递的值。目标是根据一些标准更改值,我将在能够“截取”该值时尽快建立这些标准 在本例中,我希望能够访问在新日期传递的值2019-03-31 我知道有一刻JS,也许它能满足我的需要。。。但我的目标是研究“原型”的未来用途 Date.prototype.myTest = function myTest() { let datetime = this; return 'ok'; }; 如果您想扩展Date对象,
Date.prototype.myTest = function myTest() {
let datetime = this;
return 'ok';
};
如果您想扩展Date对象,一种非常简单的方法是将ES6类与extend一起使用。这比试图修改内置的日期构造函数更容易,而且可能是一个更好的主意。在构造函数中,您可以执行任何您喜欢的操作,包括保存原始输入以供以后或立即使用:
类myDate扩展日期{
构造器{
超级
this.originalInput=d//保存输入
}
我的测试{
console.logoriginal输入:,this.originalInput;
返回“ok”;
};
}
设dt=新的MYDATE 2019-03-31
//记录原始输入:
dt.myTest;
//您仍然可以使用'Date'方法:
console.logdt.toDateString
让badDate=new mydate如何处理错误输入
badDate.myTest;
console.logDate字符串:,badDate.toDateString很抱歉,从作为参数传递给构造函数的字符串中可以看出,该字符串未保存。您只能访问一些getter和setter方法来修改日期。 因此,在函数中,您可以按照自己喜欢的特定格式重新生成日期,但不能检索原始字符串 解决问题的唯一方法是使用ES6并扩展Date类 类TestDate扩展日期{ 施工期{ 超日期 this.const_date=日期//保存输入 } 我的测试{ 返回此.const_日期; }; }
console.lognew TestDate2019-04-16.mytest这是一个很好的建议,我甚至想过使用一个类,但坚持原来的想法,无论如何,如果我放弃并选择尝试使用这个类,我可能会研究如何编写您的示例中的代码。非常感谢。
let dt = new Date("2019-03-31").myTest();