(主持人注意:我已阅读并理解了这个出色的主题:How does the "this" keyword work?,并且与该问题无关)
我没有找到类似的案例,将jQuery和OOP混合,以将上下文传递给jQuery回调。
我定义了一个名为 MySlider 的类和一个名为 registerListener 的方法, 但我无法从jQuery回调中获得对 MySlider 对象的引用。
有什么主意吗?
MySlider.prototype.registerListeners = function () {
var hello = this;
$('#sl').slider({
slide: function (event, ui) {
console.log(event + " " + ui);
// how to access 'hello' from here ?
}
}) ;
};
谢谢。
答案 0 :(得分:2)
只需访问它!您已经创建了一个闭包,可以从内部函数访问外部函数中定义的变量。
某种变量的副本与函数对象一起存储。如果在定义函数后执行了var hello = "tricked you!"
,则内部函数中找到的hello
的值将更新为匹配值。