Javascript 是否可以将回调函数应用于";“新日期”;使用原型
我想在使用prototype创建的每个Javascript 是否可以将回调函数应用于";“新日期”;使用原型,javascript,prototype-programming,Javascript,Prototype Programming,我想在使用prototype创建的每个日期中添加1个小时,现在我得到了: Date.prototype.addOneHr = function (){ this.setTime(this.getTime()+1*1000*60*60); } 但是,我必须每新日期()调用一次它: 这很不方便,而且给我带来了更多的麻烦。D: 所以我在想,如果每次我创建一个新的日期时都能调用addOneHr(),这样在编辑JavaScript时就不会让我头疼了 欢迎任何解决办法。谢谢。我强烈建议不要修改Da
日期中添加1个小时,现在我得到了:
Date.prototype.addOneHr = function (){
this.setTime(this.getTime()+1*1000*60*60);
}
但是,我必须每新日期()调用一次它:
这很不方便,而且给我带来了更多的麻烦。D:
所以我在想,如果每次我创建一个新的日期时都能调用addOneHr()
,这样在编辑JavaScript时就不会让我头疼了
欢迎任何解决办法。谢谢。我强烈建议不要修改Date
的原型,以您想要的方式构造日期(这包括添加代码,以便在创建日期时启动回调函数)
有人过来看你的代码时,不会马上意识到为什么所有的newdate()
s都是一个小时以后的事
相反,为什么不创建一个helper函数来返回您想要的日期,并从任何地方调用它呢
function createDate() {
var now = new Date();
now.setHours(now.getHours() + 1);
return now;
}
...
var date = createDate();
我强烈建议不要修改Date
的原型,以您想要的方式构造日期(这包括添加代码以在创建日期时关闭回调函数)
有人过来看你的代码时,不会马上意识到为什么所有的newdate()
s都是一个小时以后的事
相反,为什么不创建一个helper函数来返回您想要的日期,并从任何地方调用它呢
function createDate() {
var now = new Date();
now.setHours(now.getHours() + 1);
return now;
}
...
var date = createDate();
你不能按你的要求去做,但你可以通过稍微改变你的功能来让它变得更好:
Date.prototype.addOneHr = function() {
this.setTime(this.getTime() + 1000 * 60 * 60);
return this;
}
通过让它返回对象,您可以编写如下代码:
var a_date = new Date().addOneHr();
你不能按你的要求去做,但你可以通过稍微改变你的功能来让它变得更好:
Date.prototype.addOneHr = function() {
this.setTime(this.getTime() + 1000 * 60 * 60);
return this;
}
通过让它返回对象,您可以编写如下代码:
var a_date = new Date().addOneHr();
如果你要改变一个类的行为,那么你就有可能让其他看你的代码的人感到困惑,他们不希望你的代码工作得如此不同。当然,要遵循经典的OOP模式,您必须创建子代
DatePlusOneHour = Object.Extend(Date, {
getTime: function() {
return Date.prototype.getTime.call(this) + 1000*60*60;
}
});
您可能需要重写的函数不止是getTime
,或者您也可以这样重写构造函数。我相信您知道下一步要做什么。如果您要更改类的行为,那么您可能会让其他查看您的代码的人感到困惑,他们不希望代码的工作方式如此不同。当然,要遵循经典的OOP模式,您必须创建子代
DatePlusOneHour = Object.Extend(Date, {
getTime: function() {
return Date.prototype.getTime.call(this) + 1000*60*60;
}
});
您可能需要重写的函数不止是getTime
,或者您也可以这样重写构造函数。我相信你知道下一步该怎么做