added: Backcompatibility with old proxy syntax.

This commit is contained in:
Gianni Chiappetta 2011-01-21 10:33:50 -05:00
parent a03f040dbf
commit 574ae3b1be
2 changed files with 11 additions and 1 deletions

View file

@ -739,6 +739,12 @@ jQuery.extend({
proxy: function( fn, context ) { proxy: function( fn, context ) {
var args, proxy; var args, proxy;
// XXX BACKCOMPAT: Support old string method.
if ( typeof context === "string" ) {
fn = fn[ context ];
context = arguments[0];
}
// Quick check to determine if target is callable, in the spec // Quick check to determine if target is callable, in the spec
// this throws a TypeError, but we will just return undefined. // this throws a TypeError, but we will just return undefined.
if ( ! jQuery.isFunction( fn ) ) { if ( ! jQuery.isFunction( fn ) ) {

View file

@ -869,7 +869,7 @@ test("jQuery.isEmptyObject", function(){
}); });
test("jQuery.proxy", function(){ test("jQuery.proxy", function(){
expect(5); expect(6);
var test = function(){ equals( this, thisObject, "Make sure that scope is set properly." ); }; var test = function(){ equals( this, thisObject, "Make sure that scope is set properly." ); };
var thisObject = { foo: "bar", method: test }; var thisObject = { foo: "bar", method: test };
@ -890,6 +890,10 @@ test("jQuery.proxy", function(){
// Partial application w/ normal arguments // Partial application w/ normal arguments
var test3 = function( a, b ){ equals( b, "normal", "Ensure arguments can be pre-applied and passed as usual." ); }; var test3 = function( a, b ){ equals( b, "normal", "Ensure arguments can be pre-applied and passed as usual." ); };
jQuery.proxy( test3, null, "pre-applied" )( "normal" ); jQuery.proxy( test3, null, "pre-applied" )( "normal" );
// Test old syntax
var test4 = { meth: function( a ){ equals( a, "boom", "Ensure old syntax works." ); } };
jQuery.proxy( test4, "meth" )( "boom" );
}); });
test("jQuery.parseJSON", function(){ test("jQuery.parseJSON", function(){