你的位置:首页 > Java教程

[Java教程]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