Javascript 如何重写dojo函数
我想更正dojox/calendar/calendar中周数不正确的问题。我知道要更改什么=>exports.\u dojo/date/locale中的getWeekOfYear函数 如果我把它放在js文件中,它会工作得很好,但是,我不想/不能修改dojo的文件 我想应用在这里找到的覆盖解决方案: 或 一无所获 我得到一个SyntaxError:缺少:在属性id之后 在带有var obj=新导出()的行上 我上次尝试的代码:Javascript 如何重写dojo函数,javascript,dojo,Javascript,Dojo,我想更正dojox/calendar/calendar中周数不正确的问题。我知道要更改什么=>exports.\u dojo/date/locale中的getWeekOfYear函数 如果我把它放在js文件中,它会工作得很好,但是,我不想/不能修改dojo的文件 我想应用在这里找到的覆盖解决方案: 或 一无所获 我得到一个SyntaxError:缺少:在属性id之后 在带有var obj=新导出()的行上 我上次尝试的代码: require(["dojo/_base/lang", "dojo/
require(["dojo/_base/lang", "dojo/date/locale"], function(lang, locale){
lang.extend(locale, {
var obj = new exports();
obj._getWeekOfYear = function(/*Date*/ dateObject, /*Number*/ firstDayOfWeek){
if(arguments.length == 1){ firstDayOfWeek = 0; }
var determinedate = new Date();
determinedate.setFullYear(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate());
var D = determinedate.getDay();
if(D == firstDayOfWeek) D = 7;
determinedate.setDate(determinedate.getDate() + (4 - D));
var YN = determinedate.getFullYear();
var ZBDoCY = Math.floor((determinedate.getTime() - new Date(YN, 0, 1, -6)) / 86400000);
var WN = 1 + Math.floor(ZBDoCY / 7);
return WN;
};
});
});
我试过:
exports._getWeekOfYear: function(...)
exports._getWeekOfYear=: function(...)
有什么想法吗?在不提供整个解决方案的情况下,我注意到的第一件事是“exports”不是一个可以使用new关键字实例化的类。在特定的dojo模块中,导出只是一个公开API的对象
看看上面的解决方案,尤其是“MonkeyPatching”是一种对我来说非常有效的机制。如果不提供整个解决方案,我注意到的第一件事是“exports”不是一个可以使用new关键字实例化的类。在特定的dojo模块中,导出只是一个公开API的对象 请查看上的解决方案,尤其是“MonkeyPatching”这一机制对我来说非常有效。谢谢 我终于用这段代码做到了我想要的
require(["dojo/date/locale"], function( local){
local._getWeekOfYear= function(/*Date*/ dateObject, /*Number*/ firstDayOfWeek){
if(arguments.length == 1){ firstDayOfWeek = 0; }
var determinedate = new Date();
determinedate.setFullYear(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate());
var D = determinedate.getDay();
if(D == firstDayOfWeek) D = 7;
determinedate.setDate(determinedate.getDate() + (4 - D));
var YN = determinedate.getFullYear();
var ZBDoCY = Math.floor((determinedate.getTime() - new Date(YN, 0, 1, -6)) / 86400000);
var WN = 1 + Math.floor(ZBDoCY / 7);
return WN;
}
;
});
的确,出口是pb。谢谢
我终于用这段代码做到了我想要的
require(["dojo/date/locale"], function( local){
local._getWeekOfYear= function(/*Date*/ dateObject, /*Number*/ firstDayOfWeek){
if(arguments.length == 1){ firstDayOfWeek = 0; }
var determinedate = new Date();
determinedate.setFullYear(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate());
var D = determinedate.getDay();
if(D == firstDayOfWeek) D = 7;
determinedate.setDate(determinedate.getDate() + (4 - D));
var YN = determinedate.getFullYear();
var ZBDoCY = Math.floor((determinedate.getTime() - new Date(YN, 0, 1, -6)) / 86400000);
var WN = 1 + Math.floor(ZBDoCY / 7);
return WN;
}
;
});
事实上,出口就是pb