Discussions
Stay up-to-date with the latest news from NetSuite. You’ll be in the know about how to connect with peers and take your business to new heights at our virtual, in-person, on demand events, and much more.
New AI Community Guidelines. Please review and follow them to ensure AI use stays safe, accurate, and compliant.
Keep an eye out for upcoming NetSuite events, including meetups, workshops, and webinars. These sessions are a great way to connect with peers, learn from experts, and stay current on the latest NetSuite updates and best practices. Registration links are provided in each event.
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
0