i'm extending jquery.contentcarousel plugin , , i've reached specific point i'm defining new functions via __prototype__ . shrunk code down demonstrate essential part: (function($) { var aux = { navigate : function(){ //... }, } methods = { init : function( options ) { return this.each(function() { var $el = $(this); //this slippery line: $el.__proto__.scrolloneleft = function() { aux.navigate( -1, $el, $wrapper, $.extend(settings, {sliderspeed: 10, slidereasing: ''}), cache ); }; }); } } $.fn.contentcarousel = function(method) { if ( methods[method] ) { return methods[method].apply( this, array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments )...