js中扩充类型的功能

javascript允许给语言的基本类型扩充功能,通过给Ojbject.prototype添加方法,可以让该方法对所有对象适用。这样的方式对数组、函数、字符串、数字、正则表达式和布尔值都适用。

比如,我们可以给Function.prototype增加方法来使得该方法对所有函数可用:

 Function.prototype.method=function(name,fun){
        this.prototype[name]=fun;
        return this;
    };

我们可以给Function.prototype增加一个method方法,我们下次给对象增加方法的时候就不必键入prototype几个字符,省掉麻烦。

javascript没有专门的整数类型,但是有时候需要提取数字中的整数部分。javascript本身提供的取证方法有点丑陋,我们可以通过给Number.prototype增加一个integer方法来改善它。她根据数字的正负来判断使用Math.ceiling还是Math.floor

Number.method("integer",function(){
        return Math[this<0?"ceil":"floor"](this);
    });
    document.write((-10/3).integer());//-3

js中缺少一个移除字符串收尾空白的方法,可以:

 String.method("trim",function(){
        return this.replace(/^\s+|\s+$/g,"");
    });
    document.writeln("''"+" neat ".trim()+"''");

因为js原型继承的动态本质,新的方法立刻被赋予到所有对象的实例上,那么对象实例是在方法被增加之前就创建好了。

基本类型的原型是公用结构,所有在类库混用时务必小心,一个保险的做法是在确定没有该方法时才添加它,

Function.prototype.method=function(name,fun){
        if(!this.prototype[name]){
            this.prototype[name]=fun;
        }
        return this;
    };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值