添加一个方法到js对象的原型

时间:2014-07-17 07:52:59

标签: javascript methods prototype add

尝试向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

请说明如何在其原型中使用单一对象类型的其他方法。

2 个答案:

答案 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

如果您仍然遇到麻烦,请考虑将其重写为独立功能,而不是原型功能。