如何在JavaScript中覆盖全局函数,但保留对原始函数的引用?

时间:2012-05-11 14:55:05

标签: javascript

我想为window.confirm实现一个自定义函数,所以我不必重写大量遗留代码,但如果出现问题,或者依赖于某些内容,可以回退到原始函数任意逻辑。

快速存根代码,例如(可能不会这样做,但只是为了一个想法):

window.confirm = function(message, successCallback){
  var ok = site.UI.confirmDialog(message);
  if (ok && typeof(successCallback) == 'function'){
      successCallback();
  } else {
     // maybe call original browser confirm?
     // window.confirmOriginal...?
  }
}

这里的问题是,如果我覆盖它,如何获得原始功能?它存在于原型的某个地方,还是我看错了?

感谢。

1 个答案:

答案 0 :(得分:4)

Here's a demo

var origConfirm = window.confirm; //store for future use

​window.confirm = function(msg){   //override
     alert(msg);   
}

window.confirm('override!');      //should now be an alert
origConfirm('old confirm');       //the old confirm
相关问题