首页 新闻 赞助 找找看

请帮忙解释下这段JavaScript日期格式化代码?

0
悬赏园豆:20 [已解决问题] 解决于 2012-04-16 16:06

在书上看到一段JavaScript日期格式化代码,看不太懂,有没有高手可以帮我添加一下注释解释一下:

Date.prototype.strftime =(function (){  //这里为什么要加(?
function strftime(format){ //这里为什么又要定义一个方法?
var date =this;

return (format +"").replace(/%([a-zA-Z ])/g, //这个正则在这里作用是什么?
function (m,f){ //这里的m,f有什么用?
var formatter =Date.formats &&Date.formats [f ]; //这里Date.formats,Date.formats [f ]各是什么意思

if (typeof formatter =="function"){
return formatter.call(Date.formats,date); //这里是什么意思?
}else if (typeof formatter =="string"){
return date.strftime(formatter);
}

return f;
});
}

//Internal helper
function zeroPad(num){
return (+num <10 ?"0":"")+num;
}

Date.formats ={
//Formatting methods
d:function (date){
return zeroPad(date.getDate());
},

m:function (date){
return zeroPad(date.getMonth()+1);
},

y:function (date){
return date.getYear()%100;
},

Y:function (date){
return date.getFullYear();
},

//Format shorthands
F:"%Y-%m-%d",
D:"%m/%d/%y"
};
return strftime; //这里为什么又有一个return?
}());
草根程序猿的主页 草根程序猿 | 初学一级 | 园豆:129
提问于:2012-03-27 10:13
< >
分享
最佳答案
0

看看javascript的面向对象,这些你就明白了。

收获园豆:20
az235 | 大侠五级 |园豆:8483 | 2012-03-27 11:59
其他回答(1)
0

学习。。。

KivenRo | 园豆:1734 (小虾三级) | 2012-03-27 12:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册