我有大约八个原型函数的Date对象。我想避免重复Date.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();
}
};
最佳答案
您所做的方式就是用新对象替换原型。
如果您使用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/