javascript 重写已有的方法
现在有一个需求,需要重写方法,比如方法名为a,但是在方法内部,需要用到原来的方法,怎么办?
最直接的办法是:
var b = a; window.a = function(args){ a.call(window, args); } };
当然,这个不是很完美,因为定义了一个全局变量b,
更完美的解决办法是
var a = (function() { var original_a = a; if (condition) { return function() { new_code(); original_a(); } } else { return function() { original_a(); other_new_code(); } } })();
使用了一个自执行匿名函数,很完美的解决了这个问题。