JavaScript 通过prototype 属性添加属性和方法

在实际应用中,经常要为同一种数据类型定义一种临时、通用的方法,如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”>

Sample Page!

文本框数值代表目标角度,单击按钮得到其正弦值

[/code]下面的代码演示如何给Number 对象添加新的方法newFunc()并将其指向其具体实现函数,具体功能是返回Number 对象的实例代表的数值的正弦值并加1,然后将结果返回:

语句:Number.prototype.newFunc=MySin;通过访问Number 对象的prototype 属性添加newFunc()方法,并将该方法的具体实现指向自定义的函数MySin();然后通过调用该方法实现相应的功能。

通过Number 对象的prototype 属性给Number 对象添加属性的过程更简单,只需设定新属性的名称并直接赋值即可。

注意:使用 Number 对象的prototype 属性给Number 对象添加的属性和方法作用范围仅限于当前代码范围,超出该代码范围新的属性和方法将失效,此特性也适用于其他JavaScript 内置核心对象。