javascript函数值的重写

原文: javascript函数值的重写

javascript函数值的重写

 

定义了一个函数,需要重写这个函数并使用原先的函数值。做法是:

1.定义一个变量让原先函数的值指向它,把原先函数的指向一个新的函数值,在这个函数值中执行原先的函数值。

    function foo(){
        console.log("foo");
    }

    var fooTemp = foo;
    foo = function(){
        console.log("begin");
        fooTemp();
        console.log("finish");
    };

    foo();// begin foo finish
    fooTemp = null;
    foo();// begin Uncaught TypeError: fooTemp is not a function

 

2.这样的做法可能不安全,定义的临时函数可能会在后面的内容中被修改,所以把它放在一个立刻执行的函数中执行。

    function foo(){
        console.log("foo");
    }

    (function(){
        var fooTemp = foo;
        foo = function(){
            console.log("begin");
            fooTemp();
            console.log("finish");
        };
    })();

    foo(); // begin foo finish

 

3.函数parseInt在之传入一个参数的情况下,如果传入的字符串首位是0且次位不是x,若IE8就会用八进制解析,所以要重写parseInt。

    alert(parseInt("09"));//IE8:0, Chrome:9

    (function(){
        var parseIntTemp = parseInt;
        parseInt = function(str){
            return parseIntTemp(str, 10);
        };
    })();

    alert(parseInt("09")); // IE8:9, Chrome:9

 

雨木阳子
2015年10月13日
Javascript_FunctionValue_Override

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值