为JavaScript内置对象扩展方法

首先,需要准备一个扩展的模板:

        Function.prototype.method = function(name, func) {

            if (!this.prototype[name]) {
                this.prototype[name] = func;
                console.log(this);
                //return this;//如果需要级联调用的话
            }
        }

然后,为我们需要的内置对象扩展静态方法:

1.无参数扩展方法

  Number.method('ToInteger', function() {
            return this < 0 ? Math.ceil(this) : Math.floor(this);
        });

2.有参扩展方法

        String.method("Show",function(name){
            return 'Hello'+name+'!';
        });

这儿的this,就是内置对象本身,如果学过C#的朋友,完全可以联想到C#的扩展方法。

那么,我们在调用的时候,就可以直接通过编译器的提示访问到我们的扩展方法。

console.log((3.2).ToInteger())//结果为3。

接下来写一个直接可以让JS原生函数parseInt()和parseFloat()弃之高阁的方法:

function parseNumber(input) {return input*1;};

代码很简单,思想很巧妙,根据JS的运算原则,经过这一个函数的输入内容,若能够被转成数字,则转,否则,返回NaN。

于是乎,直接将其扩展到String上,

String.method('toNumber',function(input){
 return this*1;
})
好了,大家试试在控制台瞧瞧"3.141592654".toNumber()的结果

大笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值