01.Date.prototype.DayDiff = function(cDate,mode){
02.try{
03.cDate.getYear();
04.}catch(e){
05.return(0);
06.}
07.var base =60*60*24*1000;
08.var result = Math.abs(this - cDate);
09.switch(mode){
10.case "y":
11.result/=base*365;
12.break;
13.case "m":
14.result/=base*365/12;
15.break;
16.case "w":
17.result/=base*7;
18.break;
19.default:
20.result/=base;
21.break;
22.}
23.return(Math.floor(result));
24.}
试验:alert((new Date()).DayDiff((new Date(2002,0,1)))) -> 显示 329
alert((new Date()).DayDiff((new Date(2002,0,1)),”m”)) -> 显示 10
当然,也可以进一步扩充,得出响应的小时、分钟,甚至是秒。
(3) Number.fact()
作用:某一数字的阶乘
实现方法:
01.Number.prototype.fact=function(){
02.var num = Math.floor(this);
03.if(num<0)return NaN;
04.if(num==0 || num==1)
05.return 1;
06.else
07.return (num*(num-1).fact());
08.}
试验:alert((4).fact()) -> 显示 24
这个方法主要是说明了递归的方法在 prototype 方法中也是可行的!