gpt4 book ai didi

javascript - 是否有一种统一的方法可以为单个对象编写多个原型(prototype)函数?

转载 作者:行者123 更新时间:2023-11-30 18:47:43 26 4
gpt4 key购买 nike

我有大约八个 Date 对象的原型(prototype)函数。我想避免重复 Date.prototype。是否有一种统一的方法可以为单个对象编写多个原型(prototype)函数?

我试过了没有用:

Date.prototype = {
getMonthText: function(date){
var month = this.getMonth();
if(month==12) month = 0;
return ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'][month];
},
getDaysInMonth: function(date){
return 32 - new Date(this.getFullYear(), this.getMonth(), 32).getDate();
}
};

最佳答案

您的做法是用新对象替换原型(prototype)。

如果你使用 jQuery,它有一个 $.extend 方法,你可以像 $.extend(Date.prototype, { getMonthText: function(date){...}, getDaysInMonth: function(date) {...} })

如果你不使用,你可以很容易地创建一个类似函数的扩展:

function extend(proto,newFunctions) {
for (var key in newFunctions)
proto[key] = newFunctions[key]
}

并调用:

extend(Date.prototype,{ getMonthText: function(date){...},  getDaysInMonth: function(date){...} });

另一种方法是直接做:

Date.prototype.getDaysInMonth = function(date){ ... }
Date.prototype.getMonthText = function(date){ ... }

我认为这比扩展函数更具可读性。

关于javascript - 是否有一种统一的方法可以为单个对象编写多个原型(prototype)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com