我将假设我目前所代表的代码的总体结构是“最好的”,否则这个问题会变得太长,但是如果我犯了任何明显的错误(或者我是否已经过了艰难的生活)对于我自己)然后请纠正!
使用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
的任何建议吗?
答案 0 :(得分:3)
你必须爱发明封闭的人:
function MyClass () {
this.noise = "Woof"
this.dostuff = function() {
var me = this;
$.getJSON("http://cows.go",function(moo) {
me.noise = moo.inEnglish;
}
}
}