VUE在data中定义了变量,但在js中显示未定义

我在data中定义了image变量,在methods的方法中可以使用,但在方法内的canvas鼠标监听或者其他function中使用就显示未定义了,本人小白,请大家帮助一下,谢谢啦


回答

canvas.onmousedown = e =>...

this的指向问题,一楼中用箭头函数可以做到,你也可以在这个函数前let _this = this,然后在内部,console.log(_this.image)也可以得到你要的

作用域的问题哇

// 箭头函数

canvas.onmousedown = (e) => {

console.log(this.image)

}

or

let that = this;

canvas.onmousedown = function(e){

console.log(that.image)

}

ES6箭头函数中this

  1. 默认指向定义它时,所处上下文的对象的this指向。即ES6箭头函数里this的指向就是上下文里对象this指向,偶尔没有上下文对象,this就指向window
  2. 即使是call,apply,bind等方法也不能改变箭头函数this的指向

以上是 VUE在data中定义了变量,但在js中显示未定义 的全部内容, 来源链接: utcz.com/a/41556.html

回到顶部