I have gone through various topics posted in stackoverflow and other forums, which explain how to write and extend a jquery plugin.
I wrote the following sample code to test my understanding
(function( $ ) {
$.fn.myPlugin = function() {
this.firstAPI(param)
{
alert(param);
};
return this;
};
})( jQuery );
Now I am extending the plugin.
function($) {
var extensionMethods = {
secondAPI: function(param){
alert(param);
}
};
$.extend(true, $[fn][myPlugin].prototype, extensionMethods);
})(jQuery);
Now, I am accessing the plugin $().myPlugin().firstAPI("Hello"), which is successfully calling the API and showing the alert message. But I cannot access the secondAPI by $().myPlugin().secondAPI("Hello"). $().myPlugin() object doesn't have the secondAPI.
Also, one thing I have observed, myPlugin object is initialized every time whenever I invoke a API on $().myPlugin() object. I have also tried to pass a DOM element $('#divid') and then call. It failed in this scenario also.