刹车:items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source;
所以这个对象有一个叫做源的属性,this.source
它看起来this.source
可能是一个数组或一个函数。它们谓词函数$.isFunction(this.source)
接受一个对象,如果它是一个函数,则返回 true。如果它是一个函数this.source(this.query, $.proxy(this.process, this))
将被执行。
现在停止this.source(this.query, $.proxy(this.process, this))
通话。
我们从$.isFunction(this.source)
调用的结果中知道这this.source
是一个函数,它需要 2 个参数。第一个,this.query
我猜是一个字符串。第二个,$.proxy(this.process, this))
是回调函数。接受两个参数,$.proxy
一个函数和一个对象/上下文,并返回一个新函数。返回的函数上下文 ( this
) 确保为传入的对象/上下文。
$.proxy
看起来像这样
var proxy = function( func, context ) {
return ( function() {
func.apply( context, arguments );
});
};
//build a new function and set this to window
var newFunction = proxy( someOrtherFunction, window );
//use the new function
newFunction();
您可以在这里准备更多信息:http $.proxy
: //api.jquery.com/jQuery.proxy/
从 生成的新创建的函数$.proxy(this.process, this)
在this.source
函数中用作回调。