为什么this.aa变量在$.get的回调函数中无法使用

var a = function(){
    this.aa = "123";
}
a.prototype={
    go : function(){
        $.get(xxx,function(){
            bb = this.aa;//失效
        })
    }
}

这种情况怎么调用呢

阅读 3.4k
2 个回答
var a = function(){
    this.aa = "123";
}
a.prototype={
    go : function(){
        var that = this;
        $.get(xxx,function(){
            bb = that.aa;//不失效
        })
    }
}

因为你的this 指向错了
除了楼上那么写,也可以使用 bind 方法指定 this 的 具体指向
var a = function(){
this.aa = "123";
}
a.prototype={
go : function(){
$.get(xxx,function(){
bb = this.aa;//不失效
}.bind(this))
}
}

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