我写了这个愚蠢的简单日期扩展,我不知道为什么它不起作用:
function ToShortDateString(){
var cur_date = this;
if(!cur_date instanceof Date){
return 'Not A Date';
}
if(Date.parse('2/6/2009')=== 1233896400000){
return [cur_date.getMonth()+1, cur_date.getDate(), cur_date.getFullYear()].join('/');
}
return [cur_date.getDate(), cur_date.getMonth()+1, cur_date.getFullYear()].join('/');
}
Date.prototype.toShortDateString = ToShortDateString;
当我执行以下操作时,它会爆炸:
var myDate = Date();
var myString = myDate.toShortDateString();
为什么我的原型扩展没有被添加到新的Date对象?
答案 0 :(得分:3)
问题在于您调用Date构造函数的方式。日期需要新的运营商。目前,您正在myDate中存储一个字符串
var mydate = Date(); // string
var otherDate = new Date(); // Date
更简洁
Date() instanceof Date // false
new Date() instanceof Date // true