Javascript 调整大小时画布引用丢失
我有一个网格“类”,它监听窗口上的调整大小事件并调用一个函数,现在它只是记录对DOM元素的引用。在resize之前访问el工作得很好,在resize之后它也会以同样的方式工作,但是在我的resize事件回调期间,它是未定义的。有什么好处Javascript 调整大小时画布引用丢失,javascript,html,canvas,dom-events,Javascript,Html,Canvas,Dom Events,我有一个网格“类”,它监听窗口上的调整大小事件并调用一个函数,现在它只是记录对DOM元素的引用。在resize之前访问el工作得很好,在resize之后它也会以同样的方式工作,但是在我的resize事件回调期间,它是未定义的。有什么好处 function Grid (el) { this.el = document.querySelector(el); this.init(); } Grid.prototype.init = function() { window.addEvent
function Grid (el) {
this.el = document.querySelector(el);
this.init();
}
Grid.prototype.init = function() {
window.addEventListener('resize', this.resizeCanvas, false);
}
Grid.prototype.resizeCanvas = function() {
console.log(this.el);
}
每当我调整浏览器大小时,都会记录undefined。网格上下文不会调用resizeCanvas。一种选择是这样做:
Grid.prototype.init = function() {
var self = this;
window.addEventListener('resize', function () {
self.resizeCanvas();
}, false);
}
发生这种情况的原因是
窗口中的This
。addEventListener('resize',This.resizeCanvas,false)代码>指的是窗口
对象,而不是网格
。