在jQuery的API文档,该jQuery.proxy函数用法:jQuery.proxy中使用的第三个参数是什么?
jQuery.proxy(function, context)
功能的功能,其背景将被改变。
上下文应该设置函数的上下文(this)的对象。
jQuery.proxy(context, name)
上下文到其功能的上下文中应设置的对象。
name其上下文将被更改的函数的名称(应该是上下文对象的属性)。
proxy : function(fn, proxy, thisObject){
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;
}
}
if (!proxy && fn) {
proxy = function() {
return fn.apply(thisObject || this, arguments);
};
}
// So proxy can be declared as an argument
return proxy;
}
但是,当我看着jQuery的源代码,功能代理的。我发现有3个参数声明。
所以我不知道有什么用第三PARAM的,无法理解的代码:(
我写一段代码来测试功能。
var someObj = { somefnc : function() {} };
function fnc() {
this.somefnc();
console.log(arguments);
}
var proxyedFnc = jQuery.proxy(fnc, undefined, someObj, "arg1","arg2");
proxyedFnc();
//output: []
而且我不知道为什么的论点都没有通过到FNC ..
我的代码来自jQuery 1.5.1。但是,我没有在API doc – ThemeZ 2012-03-22 07:30:55
@ThemeZ中发现任何后来的更改。这并不真正相关,因为您询问的是源代码,而不是API。 – David 2012-03-22 07:36:15
@David你是对的,我只是想知道我在哪里可以找到原来的API文档.. – ThemeZ 2012-03-22 07:41:23