我不确定标题,但我希望你能帮助我。
我想使用与jQuery用于其事件处理程序相同的模式,例如click / hover / blur等,在事件处理程序中使用this
来获取对象。
我如何做到这一点?
// The event handler
var handler = function() {
alert(this); // how do I set "this" in the trigger?
}
// The function that triggers the event handler
var trigger = function(handler) {
var o = someObject;
if($.isFunction(handler)) handler(); // how do I set "o" as the this-reference in handler?
}
答案 0 :(得分:2)
您在Function原型上使用“call”或“apply”函数:
handler.call(thingThatShouldBeThis, arg, arg, arg);
或
handler.apply(thingThatShouldBeThis, [arg, arg, arg]);
Call接受一个像常规函数一样的参数列表,而apply需要将参数放在一个数组中。
某些浏览器的旧版本没有“适用”,但我不知道现在是否值得担心。