如何覆盖javascript本机对象的内置方法
假设我们有窗口对象的警报方法。我想用漂亮的alertbox来增强它 此外,我还想保存现有的警报方法,以便我们可以在应用程序结束后切换回 类似这样,但在firefox控制台中抛出错误如何覆盖javascript本机对象的内置方法,javascript,overriding,prototype-programming,built-in,Javascript,Overriding,Prototype Programming,Built In,假设我们有窗口对象的警报方法。我想用漂亮的alertbox来增强它 此外,我还想保存现有的警报方法,以便我们可以在应用程序结束后切换回 类似这样,但在firefox控制台中抛出错误 window.prototype.alert = function(){ } 你可以 var base = window.alert; window.alert = function(message) { document.getElementById("myalertwidget").innerHTML
window.prototype.alert = function(){
}
你可以
var base = window.alert;
window.alert = function(message) {
document.getElementById("myalertwidget").innerHTML = message;
return base.apply(this, arguments);
};
没有
窗口。原型对象<代码>窗口
是javascript上下文的全局对象,它不是从原型创建的
但是,您希望通过以下代码实现:
window.old_alert = window.alert;
window.alert = function(txt) {
// do what you need
this.old_alert(txt);
}
base.apply(这个,参数)
只需正确调用原始的alert()
如果您希望这样做,实际上,有窗口。prototype
。