javascript - 让对象 "invoke"在 JavaScript 中运行

标签 javascript jquery

我不确定标题,但我希望你能帮助我。

我想使用与 jQuery 用于其事件处理程序的模式相同的模式,例如单击/悬停/模糊等,您在事件处理程序中使用 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?
}

最佳答案

您在函数原型(prototype)上使用“调用”或“应用”函数:

 handler.call(thingThatShouldBeThis, arg, arg, arg);

 handler.apply(thingThatShouldBeThis, [arg, arg, arg]);

Call 像常规函数一样接受参数列表,而 apply 需要单个数组中的参数。

有些浏览器的旧版本没有“应用”,但我不知道现在是否值得担心。

关于javascript - 让对象 "invoke"在 JavaScript 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3590807/

相关文章:

javascript - Angular中多个HTTP请求的最佳方式

javascript - 如何使用 tick 和 d3.format 将字符串附加到 y 轴数据?

Jquery 替换字符串属性简码

jquery - 递归 Ajax 延迟对象

javascript - 为什么 Reflux.js ListenAndPromise 帮助程序不起作用?

javascript - 当我将鼠标悬停在它的子 div 元素上时,我可以隐藏父 div 吗?

javascript - 在 dataTable 中的 JavaScript 处理中禁用按钮

Javascript each() 函数删除链接

javascript - 链接和悬停在超大屏幕中不起作用

javascript - JQuery 选择器比 DOM 属性更安全吗?