调整大小时画布引用丢失

时间:2014-11-07 21:34:22

标签: javascript html5 canvas javascript-events

我有一个Grid" class"侦听在窗口上调整事件大小并调用一个函数,该函数现在只是记录对DOM元素的引用。在调整大小之前访问el工作完美,并且之后的工作方式相同,但在我的resize事件回调期间,它是未定义的。是什么给了什么?

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。

1 个答案:

答案 0 :(得分:2)

没有使用Grid的上下文调用resizeCanvas。一种选择是做这样的事情:

Grid.prototype.init = function() {
  var self = this;
  window.addEventListener('resize', function () {
    self.resizeCanvas();
  }, false);
}