git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added in jQuery.proxy(obj, name), like the method described in Secrets of the JavaScr...
[jquery.git]
/
src
/
core.js
diff --git
a/src/core.js
b/src/core.js
index
2c5445a
..
3b6cfff
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-618,17
+618,28
@@
jQuery.extend({
guid: 1,
proxy: function( fn, proxy, thisObject ) {
guid: 1,
proxy: function( fn, proxy, thisObject ) {
- if ( arguments.length === 2 && proxy && !jQuery.isFunction( proxy ) ) {
- thisObject = proxy;
- proxy = undefined;
+ if ( arguments.length === 2 ) {
+ if ( typeof proxy === "string" ) {
+ thisObject = fn;
+ fn = thisObject[ proxy ];
+ proxy = undefined;
+
+ } else if ( proxy && !jQuery.isFunction( proxy ) ) {
+ thisObject = proxy;
+ proxy = undefined;
+ }
}
}
- proxy = proxy || function() {
- return fn.apply( thisObject || this, arguments );
- };
+ if ( !proxy && fn ) {
+ proxy = function() {
+ return fn.apply( thisObject || this, arguments );
+ };
+ }
// Set the guid of unique handler to the same of original handler, so it can be removed
// Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+ if ( fn ) {
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+ }
// So proxy can be declared as an argument
return proxy;
// So proxy can be declared as an argument
return proxy;