Javascript 传阅;这";jquery中的上下文

Javascript 传阅;这";jquery中的上下文,javascript,jquery,Javascript,Jquery,这是正确的做事方式吗。另外,我在这里通过传递这个上下文\u这个有更好的方法吗 var messages = { getLoadMore : function(_this){ ............... }, getSwappingData : function(_this){ ................. }, } jQuery('.js-message-swap').live('click', function(){

这是正确的做事方式吗。另外,我在这里通过传递
这个
上下文\u这个有更好的方法吗

var messages = {
    getLoadMore : function(_this){
        ...............
    },

    getSwappingData : function(_this){
        .................
    },
}

jQuery('.js-message-swap').live('click', function(){
    _this = jQuery(this);
    messages.getSwappingData(_this);
    return false;
});

唯一的其他方法是将其作为参数而不是变量传递给函数

var messages = {
    getLoadMore : function(_this){
        ...............
    },

    getSwappingData : function(_this){
        .................
    },
}

jQuery('.js-message-swap').live('click', function(){
    // Remove this _this = jQuery(this);
    messages.getSwappingData(jQuery(this));
    return false;
});

你所拥有的会很好用的。较短的版本是将函数的引用传递给
click
处理程序,然后该处理程序将
应用于外部函数。试试这个:

var messages = {
    getLoadMore : function() {
        var $el = $(this);
        return false;
    },

    getSwappingData : function() {
        var $el = $(this);
        return false;
    }
}

jQuery('.js-message-swap').live('click', messages.getSwappingData);

您不一定需要
\u this=jQuery(this)
直接将其作为参数传递。仅供参考,
.live()
不推荐使用,您应该使用
.on()
。构造函数中的
是什么意思?
?类可以,但它们是函数,所以很遗憾,您不能使用