Javascript Jquery使用$.klass保留“This”的最佳实践
我使用Jquery插件klass,但我在使用它时遇到了一些问题…:/ 我有一个包含方法的类,但当我想从我的对象捕获事件(如click and Call method)时,我只找到了两个方法: 问题: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 () {
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');
}
})
我不喜欢第二个解决方案,因为我不喜欢全局变量,但我不知道第一个是否更好
您能帮我选择一个最好的解决方案吗?或者您可以为我提供其他解决方案:
谢谢