Discussions
Not really SuiteScript, but JS question: overriding another objects methods
It isn't really overriding because the two objects are in the same hierarchy, it's more "hijacking".
What I want to do is have one object ("Mgr") hijack a method on an instance of another object ("Widget")
My real code is way complex and messy, but I banged out a very simple example that illustrates what I want. I'm sure this will show my js-rookie-ness but I'm stuck!
Basically, if you save the below code in a text file (with html extension) you should be good to go.
<html> <head> <title>javascript tester</title> <script> var m = new Mgr(); var w = new Widget(); function Widget() { this.setLabel = function() { alert('this is the Widget method'); } } function Mgr() { this._oldWidgetMethod = null; this.OverrideWidgetMethod = function() { this._oldWidgetMethod = w.setLabel; var self = this; w.setLabel = function() { self.setLabelOverride; }; } this.setLabelOverride = function() { this._oldWidgetMethod.apply(this, arguments); alert('this is the Mgr method'); } } </script> </head> <body> <input type=button value='Hijack Widget Method' onclick="m.OverrideWidgetMethod();"> <input type=button value='Invoke Widget Method' onclick="w.setLabel();"> </body> </html> Steve Klett | Senior Developer
NetValue Technology