返回值:FunctionjQuery.proxy(function, context)
接受一个函数,然后返回一个新函数,并且这个新函数始终保持了特定的上下文语境。
-
1.4 新增jQuery.proxy(function, context)
function (Function) 将要改变上下文语境的函数。context (Object) 函数的上下文语境(`this`)会被设置成这个 object 对象。 -
1.4 新增jQuery.proxy(context, name)
context (Object) 函数的上下文语境会被设置成这个 object 对象。name (String) 将要改变上下文语境的函数名(这个函数必须是前一个参数 'context' 对象的属性)
这个方法通常在向一个元素上附加事件处理函数时,上下文语境实际是指向另一个对象的情况下使用。另外,jQuery 能够确保即使你绑定的函数是经过 jQuery.proxy() 处理过的函数,你依然可以用原先的函数来正确地取消绑定。
示例:
强制修改函数的上下文语境
jQuery 代码:
var obj = {
name: "John",
test: function() {
alert( this.name );
$("#test").unbind("click", obj.test);
}
};
$("#test").click( jQuery.proxy( obj, "test" ) );
// This also works:
// $("#test").click( jQuery.proxy( obj.test, obj ) );