Let’s say I have window.open (without name parameter), scattered in my project and I want to change the implementation so that wherever name is not specified I’ll specify a default name.
What I want to do about this is hook my own method to window.open so that whenever window.open runs it’ll internally call my own method which will then call window.open (with the name parameter).
Is that possible through Javascript? Will there be any circular dependency issues in this i.e. window.open calling my custom function which in turn calling the window.open function again?
P.s. In simple terms what I want to do is override the window.open functionality.
To avoid circular calls, you need to stash away the original
window.openfunction in a variable.A nice way (that doesn’t pollute the global namespace) is to use a closure. Pass the original
window.openfunction to an anonymous function as an argument (calledopenbelow). This anonymous function is a factory for your hook function. Your hook function is permanently bound to the originalwindow.openfunction via theopenargument: