Javascrip扩展 - Object

 

在Javascript程序设计中,时常会用到或新增自己编写的各类函数,随着此类小函数的数量的增加,管理上会比较繁重,如果把基本功能分类封装到各种既有对象或自定义类中去,如Object,Math,String,Number等等,使用的时候会非常的方便,并且更容易理解和管理。

现在已经实现的扩展有Math简单数学函数、模拟实现C++的CPoint的JsPoint类、模拟实现C++的CRect的JsRect矩形类、模拟实现C++的CRgn的JsRange类、对于线条的实现JsLine类等,将会陆续贴出。

下面是对Javascript的Object对象简单功能的扩展,比较实用的是Object.GetProperties()等三个函数,可以遍历对象的所有属性、方法和内在对象,通过类似Object[Object.GetProperties()[n]]( )的形式即可使用:


/* - ==========================================================
*     开发人员:卢印刚
*     编写时间:2006-9-26
*     函数名称:
*     参数说明:
*     功能说明:对Object的扩展
*     使用说明: 1、Object.IsNum(),判断是否为数字
*                          2、Object.IsPoint(),判断是否为Point对象
*                          3、Object.IsRect(),判断是否为Rect对象
*                          4、Object.IsLine(),判断是否为Line对象
*                          5、Object.GetProperties(),返回其属性的数组
*                          6、Object.GetMethods(),返回其方法的数组
*                          7、Object.GetObjects(),返回其对象的数组
*                          8、Object.Decimal( digit ),将数字取小数位
-
*/

Object.prototype.IsNum    
= function()        {    return !isNaN(this );    }
Object.prototype.IsPoint    
= function()       {
return ( this.x != null && this.y != null ) ? true : false ;            }
Object.prototype.IsPointNull 
= function()    {    return ( this.IsPoint() && this.x != 0 && this.y != 0 ) ? true : false
;    }
Object.prototype.IsRect    
= function()        {    return ( this.left==null || this.top==null || this.right==null || this.bottom==null )?false:true
;}
Object.prototype.IsLine    
= function()        {    return ( this.from != null    && this.to != null
 
                                                        
&& this.from.IsPoint() && this.to.IsPoint() ) ? true : false
;    }    
Object.prototype.GetProperties    
= function
()    {
    
var propArr = new
 Array();
    
for ( prop in this
 ) {
        
var type = typeof this
[prop];
        
if ( type == "string" || type== "number" || type == "boolean"
 ) propArr.push( prop );
    }
    
return
 propArr;
}
Object.prototype.GetMethods 
= function
()    {
    
var funcArr = new
 Array();
    
for ( func in this ) {    if ( typeof this[func] == "function"
 ) funcArr.push( func );    }
    
return
 funcArr;
}
Object.prototype.GetObjects 
= function
()    {
    
var objArr = new
 Array();
    
for ( obj in this ) {    if ( typeof this[obj] == "object"
 ) objArr.push( prop );        }
    
return
 objArr;
}
Object.prototype.Decimal    
= function
( digit )    {
    
var number = parseFloat( this
.toString() );
    
return Math.round( number*Math.pow( 10, digit ) ) / Math.pow( 10
, digit );
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值