尝试向js Date
对象添加方法以获取格式化日期,Date
未在任何地方声明或使用new
/ create()
进行调用:
Date.prototype.format = function () {
// return this.getFullYear() + '-' + ('0' + (this.getMonth() + 1)).slice(-2) + '-' + ('0' + this.getDate()).slice(-2)
var curr_date = this.getDate();
var curr_month = this.getMonth() + 1;
var curr_year = this.getFullYear();
return curr_year + "-" + curr_month + "-" + curr_date;
}
我搞砸了this
变量。
getDate()
,getMonth()
,getFullYear()
是Date
对象的方法。
调用.getDate();
时会引发错误:undefined is not a function
请说明如何在其原型中使用单一对象类型的其他方法。
答案 0 :(得分:0)
如果您想使用它而不创建新的日期实例......呵呵
你可以做到
var d = new Date
在一个函数中。并将所有这些替换为d。然后就可以了
Date.prototype.format()
但如果你还想要这个,那就去做吧
new Date().format()
答案 1 :(得分:-2)
您是否有机会将此作为属性而不是方法?我只是将你的代码放入Chrome的控制台,通过将其作为方法调用它似乎工作正常。
new Date().format; // does not work
new Date().format(); // works
如果您仍然遇到麻烦,请考虑将其重写为独立功能,而不是原型功能。