我在访问此范围时遇到问题,如何在嵌套中应用此范围。
问题在于我无法成功使用THIS。
var Module = {
els: {
body: $('body')
},
success: function(result) {
// Body is now undefined, no access to this
console.log(result, this.els.body);
// Access only via Module, this should be end result
Module.els.body.html(result)
},
init: function() {
$.get('/echo/jsonp', this.success);
}
};
Module.init();
答案 0 :(得分:4)
使用jQuery,您可以使用$.proxy(function, context
)
$.get('/echo/jsonp', $.proxy(this.success, this);
没有jQuery,你可以使用一个闭包
var myContext = this;
$.get('/echo/jsonp', function(X) { myContext.success(X); );
或
var myContext = this;
$.get('/echo/jsonp', function() { myContext.success.apply(myContext, arguments); );