From: Scott González Date: Fri, 11 Feb 2011 02:32:33 +0000 (-0500) Subject: Widget: Only create _super and _superApply once per method, then assign on every... X-Git-Tag: 1.9m4~16 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=92bae28deaa6d4ab195b51a46acf5ed3157b7648;p=jquery-ui.git Widget: Only create _super and _superApply once per method, then assign on every execution. --- diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index 27a7cd1b0..e09701d7b 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -58,15 +58,19 @@ $.widget = function( name, base, prototype ) { basePrototype.options = $.extend( true, {}, basePrototype.options ); $.each( prototype, function( prop, value ) { if ( $.isFunction( value ) ) { - prototype[ prop ] = function() { - this._super = function( method ) { + prototype[ prop ] = (function() { + var _super = function( method ) { return base.prototype[ method ].apply( this, slice.call( arguments, 1 ) ); }; - this._superApply = function( method, args ) { + var _superApply = function( method, args ) { return base.prototype[ method ].apply( this, args ); }; - return value.apply( this, arguments ); - }; + return function() { + this._super = _super; + this._superApply = _superApply; + return value.apply( this, arguments ); + }; + }()); } }); $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {