jquery 代理
jQuery 代理方法
jQuery 中的代理方法($.proxy())用于绑定函数的执行上下文(this 对象)。它在某些场景下非常有用,例如事件处理或异步回调中需要确保 this 指向特定对象时。

基本语法
$.proxy(function, context);
// 或
$.proxy(context, functionName);
使用示例
绑定函数上下文

var obj = {
name: "Example",
showName: function() {
console.log(this.name);
}
};
// 使用 $.proxy 确保 this 指向 obj
setTimeout($.proxy(obj.showName, obj), 1000);
事件处理中的代理
$("#button").click($.proxy(function(event) {
console.log(this.name); // this 指向 obj
}, obj));
替代方案
在现代 JavaScript 中,可以使用 Function.prototype.bind() 实现类似功能:
setTimeout(obj.showName.bind(obj), 1000);
注意事项
$.proxy()在 jQuery 3.0 之后被标记为废弃,推荐使用原生bind()方法。- 代理后的函数会创建一个新函数,原始函数的上下文被固定为指定的对象。
适用场景
- 需要确保回调函数中
this指向特定对象时。 - 处理事件绑定且需要保留原始对象上下文时。






