Javascript Jquery使用$.klass保留“This”的最佳实践

Javascript Jquery使用$.klass保留“This”的最佳实践,javascript,jquery,oop,class,this,Javascript,Jquery,Oop,Class,This,我使用Jquery插件klass,但我在使用它时遇到了一些问题…:/ 我有一个包含方法的类,但当我想从我的对象捕获事件(如click and Call method)时,我只找到了两个方法: 问题: test = $.klass({ init: function () { console.log('CM'); }, action: function () { $('.test').on('click', function () {

我使用Jquery插件klass,但我在使用它时遇到了一些问题…:/

我有一个包含方法的类,但当我想从我的对象捕获事件(如click and Call method)时,我只找到了两个方法:

问题:

test = $.klass({
    init: function () {
        console.log('CM');
    },

    action: function () {
        $('.test').on('click', function () {
            // Call test method
        });
    },
    test: function () {
        console.log('test');
    }
})
解决方案1:将“This”类似于数据

test = $.klass({
    init: function () {
        console.log('CM');
    },

    action: function () {
        $('.test').on('click', { context: this }, function (event) {
            event.data.context.test();
        });
    },
    test: function () {
        console.log('test');
    }
})
解决方案2:获取“全局”此

test = $.klass({
    init: function () {
        console.log('CM');
    },

    action: function () {
        var that = this;
        $('.test').on('click', function (event) {
           that.test();
        });
    },
    test: function () {
        console.log('test');
    }
})
我不喜欢第二个解决方案,因为我不喜欢全局变量,但我不知道第一个是否更好

您能帮我选择一个最好的解决方案吗?或者您可以为我提供其他解决方案:

谢谢