将对象引用传递给jQuery回调

时间:2018-07-03 21:48:22

标签: javascript jquery

(主持人注意:我已阅读并理解了这个出色的主题: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 ?
        }
    }) ;
};

谢谢。

1 个答案:

答案 0 :(得分:2)

只需访问它!您已经创建了一个闭包,可以从内部函数访问外部函数中定义的变量。

某种变量的副本与函数对象一起存储。如果在定义函数后执行了var hello = "tricked you!",则内部函数中找到的hello的值将更新为匹配值。