无法在Javascript中延长日期?

时间:2015-05-21 22:40:58

标签: javascript

我写了这个愚蠢的简单日期扩展,我不知道为什么它不起作用:

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对象?

1 个答案:

答案 0 :(得分:3)

问题在于您调用Date构造函数的方式。日期需要新的运营商。目前,您正在myDate中存储一个字符串

var mydate = Date(); // string
var otherDate = new Date(); // Date

更简洁

Date() instanceof Date // false
new Date() instanceof Date // true