在jQuery $ .getJSON中访问父'this'

时间:2010-03-22 23:41:50

标签: jquery

我将假设我目前所代表的代码的总体结构是“最好的”,否则这个问题会变得太长,但是如果我犯了任何明显的错误(或者我是否已经过了艰难的生活)对于我自己)然后请纠正!

使用jQuery,我有一个javascript'class'设置如下:

function MyClass () {
  this.noise = "Woof"
  this.dostuff = function() {
    $.getJSON("http://cows.go",function(moo) {
      this.noise = moo.inEnglish;
    }
  }
}

var instance = new MyClass();
instance.doStuff()
console.log(instance.noise)

我期待在控制台中喝点茶,但当然我收到的错误是this.noise没有被定义(因为$.getJSON没有通过this通过,对吧?)

有关如何在不受干扰的情况下对instance.squeak的任何和所有情况影响MyClass的任何建议吗?

1 个答案:

答案 0 :(得分:3)

你必须爱发明封闭的人:

function MyClass () {
  this.noise = "Woof"

  this.dostuff = function() {
    var me = this;
    $.getJSON("http://cows.go",function(moo) {
      me.noise = moo.inEnglish;
    }
  }
}