在实际应用中,经常要为同一种数据类型定义一种临时、通用的方法,如Date 对象的setYear()方法可以接受2 位和4 位数字来修改年份,方法识别传入的参数,如果是2 位数字,则自动加上1900,然后将结果返回构造函数,以便正确生成目标年份。
可以想象在其中存在一个函数add1900:function add1900(value)
{
var reNum;
var errorMsg="error!";
if(value.isNumber==1)
{
if(value.length==2)
reNum=value+1900;
else
reNum=value;
return reNum;
}
else
return errorMsg;
}
Number 对象除了toString()方法外,不支持任何方法进行数值运算,但开发者能够通过其prototype 属性来扩充其属性和方法。[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
“http://www.w3.org/TR/REC-html140/strict.dtd”>
文本框数值代表目标角度,单击按钮得到其正弦值
[/code]下面的代码演示如何给Number 对象添加新的方法newFunc()并将其指向其具体实现函数,具体功能是返回Number 对象的实例代表的数值的正弦值并加1,然后将结果返回:语句:Number.prototype.newFunc=MySin;
通过访问Number 对象的prototype 属性添加newFunc()方法,并将该方法的具体实现指向自定义的函数MySin();然后通过调用该方法实现相应的功能。
通过Number 对象的prototype 属性给Number 对象添加属性的过程更简单,只需设定新属性的名称并直接赋值即可。
注意:使用 Number 对象的prototype 属性给Number 对象添加的属性和方法作用范围仅限于当前代码范围,超出该代码范围新的属性和方法将失效,此特性也适用于其他JavaScript 内置核心对象。