From 92bae28deaa6d4ab195b51a46acf5ed3157b7648 Mon Sep 17 00:00:00 2001 From: Scott González Date: Thu, 10 Feb 2011 21:32:33 -0500 Subject: Widget: Only create _super and _superApply once per method, then assign on every execution. --- ui/jquery.ui.widget.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'ui/jquery.ui.widget.js') 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, { -- cgit v1.2.3