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

Add a method to prototype of js object

本文关键字:一个 方法 添加 js 对象 原型      更新时间:2023-09-26

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

请澄清如何在其原型中使用单一对象类型的其他方法

如果你想使用它而不创建新的date实例…嗯

你可以做

 var d = new Date 
函数中的

。并将所有这些替换为d。然后您可以执行

Date.prototype.format()

但如果你仍然想要这个,只需执行

new Date().format()

您是否有机会将其作为属性而不是方法调用?我只是把你的代码到Chrome的控制台,它似乎工作得很好,通过调用它作为一个方法。

new Date().format; // does not work
new Date().format(); // works

如果你仍然有问题,考虑将它重写为一个独立的函数,而不是一个原型函数。