这是我的问题:
var greatapp = {
start : function(){
$.AJAX({
url : 'foo.com',
success : function(data){
greatapp.say(data);
}
})
},
say : function(s){
console.log(s);
}
}
我不喜欢这个例子的事实是,我在 success
函数中通过定义对象的名称而不是仅仅 this
来重复我自己,这显然赢了无法工作,因为它在外部 函数中。
如何在 JS 对象中只使用一次名称 greatapp
?
最佳答案
一个常见的 JavaScript 习惯用法是将 this
的值保存到一个变量中,例如 me
或 self
,然后使用 that 在回调中。
这将起作用,因为回调可以访问在封闭范围内声明的变量——换句话说,回调将形成对 self
var greatapp = {
start : function(){
var self = this;
$.AJAX({
url : 'foo.com',
success : function(data){
self.say(data);
}
})
},
say : function(s){
console.log(s);
}
}
关于javascript - 在 jQuery 回调中获取父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707252/