全局范围 - 在触发事件侦听器后访问“this”
Global scope - access "this" after firing event listener
我有一个使用XHR上传文件的mootools类:
var foo = new Class({
initialize: function() {
this.bar = 'value';
},
upload: function() {
// This method uploads a file
….
xhr.addEventListener('load', this.uploadComplete, false);
….
},
uploadComplete: function() {
// Is getting called on completion of file upload
console.log(this.bar); // undefined, but I want to to be 'value'
}
});
我想以uploadComplete
方法访问this.bar
,但this
没有通过xhr.addEventListener('load', this.uploadComplete, false);
任何帮助,不胜感激。
您需要
使用 Function.prototype.bind
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind 和 http://mootools.net/docs/core/Types/Function#Function:bind - 这将在事件触发时正确设置上下文。
xhr.addEventListener('load', this.uploadComplete.bind(this), false);
相关文章:
- 为什么我不能在 ajax 成功中访问 $(this)
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- React Native can'无法在render()方法之外访问this.ops
- 通过函数传递“this”时,我是否可以无法访问“this”的属性
- 在 JavaScript 中的异步回调函数中访问“this”
- 在 HTTP 错误回调中访问“this”
- jQuery - 如何在 jquery 中访问 “this.options” dataSousrce 属性
- 在jQuery的.on()数据对象中访问$(this)
- 全局范围 - 在触发事件侦听器后访问“this”
- 从原型中的事件访问“this”
- Javascript原型和访问“this”的父对象
- Backbone/Javascript scope.如何在 .each 中访问 this.el
- 从其他函数访问“this”类型的JavaScript变量
- 反应:如何访问this.props.children中的参考文献
- 当我使用一个方法作为回调时,它似乎无法访问“this”.为什么?
- 为什么可以't我在对象文字中访问this.properties
- 为什么可以't我在箭头函数中访问“this”
- 无法在extjs中访问this.myvar
- 为什么不是在 JavaScript 中匿名函数之外访问“this”对象的关键字
- 如何访问“this”;对象