在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