javascript中的这个this代表的是什么呀?

在一个回调函数中调用了Base.progress.init()的方法,如下所示:

function update_status(data, textStatus) {
    if (textStatus=="success") {
        for(i=0; i< data.length; i++) {
            $("#on"+data[i].uuid).each(function() {
                if (data[i].status=="ON") {
                    $(this).attr('status', "ONLINE");
                } else if (data[i].status=="OFF") {
                    $(this).attr('status', "OFFLINE");
                } else if (data[i].status == "ERRTKN") {
                    $(this).attr('status', "ERRTKN");
                }else {
                    $(this).attr('status', "unknown");
                }
                Base.progress.init();
            }); 

这里的这个Base.progress.init()方法是个javascript方法,如下所示:

Base.progress = {
    init : function(){
        var _this = this;
        $('.progress').each(function(){
            var status = $(this).attr('status');
            if(status.length == 0){_this.unknown(this); return;};
            _this[status](this);
        });
        $('.discinfo').each(function(){
            var status = $(this).attr('status');
            if(status.length == 0){_this.unknown(this); return;};
            _this[status](this);
        });
        $('.progress_ha').each(function(){
            var status = $(this).attr('status');
            if(status.length == 0){_this.unknown(this); return;};
            _this[status](this);
        })
    },

①请问在下面这个JavaScript方法中this和$(this)分别表示的什么呀?
②_thisstatus是什么意思?
③_this.unkown(this)是什么意思?

阅读 3k
3 个回答

var _this = this

//这个this指的是调用这个方法的东西保存为 _this

//方便在函数里面调用$(this)就是获取$('.progress') $('.discinfo') $('.progress_ha')

// status 因为循环后这个就是个数组了,所以用_this[status]包裹代表调用的这个元素的status属性

this是对象自己,$(this)是转为jquery对象

this是你操作的当前对象,$(this)是转为jquery对象,这样就可以使用JQUERY API,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题