how to overwrite a builtin method of javascript native objects

6.2k views Asked by At

Lets say we have alert method of window object. I would like to enhance it with nice alertbox.

Also I want to save the existing alert method so that we can switch back once our application is over.

Something like this, but its throwing error in firefox console.

window.prototype.alert = function(){

}
2

There are 2 answers

1
Alex K. On BEST ANSWER

You can;

var base = window.alert;
window.alert = function(message) {
    document.getElementById("myalertwidget").innerHTML = message;
    return base.apply(this, arguments);
};
1
Krizz On

There is no window.prototype object. window is a global object of javascript context and it is not created from the prototype.

However, what you want to do is achievable with the following code:

window.old_alert = window.alert;  
window.alert = function(txt) {
      // do what you need
      this.old_alert(txt);
}