diff --git a/docs/source/development.rst b/docs/source/development.rst index de561bc18..341e6778a 100644 --- a/docs/source/development.rst +++ b/docs/source/development.rst @@ -888,27 +888,38 @@ An example plugin // For example, the inner protected *converse* object has a // method "onConnected". You can override that method as follows: onConnected: function () { - // Override the onConnected method in converse.js - // You have access to the protected converse object via the - // _super attribute. - var converse = this._super.converse; + // Overrides the onConnected method in converse.js + + // Top-level functions in "overrides" are bound to the + // inner "converse" object. + var converse = this; // Your custom code comes here. // ... // You can access the original function being overridden - // vai the _super attribute. - this._super.onConnected(); + // via the _super attribute. + // Make sure to pass on the arguments supplied to this + // function and also to apply the proper "this" object. + this._super.onConnected.apply(this, arguments); }, XMPPStatus: { // Override converse.js's XMPPStatus Backbone model so that we can override the // function that sends out the presence stanza. sendPresence: function (type, status_message, jid) { + // The "converse" object is available via the _super + // attribute. var converse = this._super.converse; + // Custom code can come here // ... - this._super.sendPresence(type, status_message, jid); + + // You can call the original overridden method, by + // accessing it via the _super attribute. + // When calling it, you need to apply the proper + // context as reference by the "this" variable. + this._super.sendPresence.apply(this, arguments); } }, }