关于canvas遇到一个诡异的问题

HTML:

<canvas id="canvas" width="1000" height="900"></canvas>

JS:

var map = {
    canvas: document.getElementById('canvas'),
    cxt: this.canvas.getContext('2d'),
}

如果将HTML和JS的canvasid改成canvas1或其他任何单词都会报错,Cannot read property 'getContext' of undefined

阅读 3.8k
2 个回答

你这个this用的不对,只有在函数里面在有this

你这代码比较吊,下面的这个对象

var map = {
    canvas: document.getElementById('canvas'),
    cxt: this.canvas.getContext('2d'),
}

this这个时候要么是window要么是undefined,居然不报错,这才让我感到震惊。

你在当前作用域里面肯定有个名为canvas的变量吧?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题