1. 程式人生 > >VUE中寫原生js時this指向問題

VUE中寫原生js時this指向問題

1.在原生js中使用vue的方法的問題

    在vue寫原生函式的時候使用this.函式名,是找不到在methods中定義的方法的,因為這個時候this指向的是window而不是vue

在這裡拿js中的定時器函式做例項:

普通寫法:

setTimeout(function(){
	console.log(this)
},1000)

可以看到以下輸出的是window

ES6寫法:

setTimeout(() =>{
	console.log(this)
},1000 * 20)

 以下輸出的是VUE

所以要想在原生js函式中呼叫vue中定義的函式時需要使用ES6的寫法。