Javascript的扩充类型功能

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

    举例来说,我们可以通过Function.prototype增加方法来使得该方法对所有函数可用:

Function.prototype.method = function(name, func){
    this.prototype[name] = func;
    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);
});

    javascript缺少了一个移除字符串首尾空白的方法。这个小疏忽很容易弥补:

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

    通过给基本类型增加方法,我们可以极大地提高语言的表现力。因为javascript原型继承的动态本质,新的方法立刻被赋予到所有的对象实例上,哪怕对象实例是在方法被增加之前就创建好了。

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

Function.prototype.method = function(name, func){
    if(!this.prototype[name]){
        this.prototype[name]=func;
    }
    return this;
};
※摘抄自《JavaScript语言精粹(修订版)》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值