I have a following (simplified) code:
var myModule = {
submitDummyForm: function(){
console.log(this); // the right object is logged out
var that = this; // keep a reference
$.ajax({
type: POST ,
url: http://localhost/ ,
data: {dummyData: something },
dataType: json ,
success: that.dummyFormSuccess
});
},
dummyFormSuccess: function(data){
console.log(this); // this is logged out as some foreign object, most probably jQuery.ajax object
}
}
这导致德米Form Success失去这一机会,无论我是否利用这一机会,也无论我是否把dummyForm Successfor作为我的jaxSubmitForm()的理由。
但是,根据我的需要,执行以下法典:
var myModule = {
submitDummyForm: function(){
console.log(this); // the right object is logged out
var that = this; // keep a reference
$.ajax({
type: POST ,
url: http://localhost/ ,
data: {dummyData: something },
dataType: json ,
success: function(data) {
that.dummyFormSuccess(data);
}
});
},
dummyFormSuccess: function(data){
console.log(this); // now this is logged out correctly as the real myModule object
}
}
我仍然对 Java稿的先进专题感到不舒服,但我已经知道,这可能会根据使用地点重新定义。 我认为,如果我利用这一手段来储存这一提法,那么我也应当把这一点放在所谓的职能中。 我可以这样说,这似乎令人不快。 总结性功能中的“mmyForm Success(数据)”是正确的,但是,如果我只把它分配给“jax”成功,我就失去了这一成功。
没有人能够解释,在我的案件中,这是错失的,为什么在第二个例子中发挥作用? 难道这在我的案件中是个问题,还是仅仅一个语言的特征?