Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:重写日期-如何获取传递给构造函数的值_Javascript - Fatal编程技术网

Javascript:重写日期-如何获取传递给构造函数的值

Javascript:重写日期-如何获取传递给构造函数的值,javascript,Javascript,我正在研究并希望扩展Date对象,我喜欢的一件事是能够访问原型中在构造函数中传递的值。目标是根据一些标准更改值,我将在能够“截取”该值时尽快建立这些标准 在本例中,我希望能够访问在新日期传递的值2019-03-31 我知道有一刻JS,也许它能满足我的需要。。。但我的目标是研究“原型”的未来用途 Date.prototype.myTest = function myTest() { let datetime = this; return 'ok'; }; 如果您想扩展Date对象,

我正在研究并希望扩展Date对象,我喜欢的一件事是能够访问原型中在构造函数中传递的值。目标是根据一些标准更改值,我将在能够“截取”该值时尽快建立这些标准

在本例中,我希望能够访问在新日期传递的值2019-03-31

我知道有一刻JS,也许它能满足我的需要。。。但我的目标是研究“原型”的未来用途

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();