我们知道,如果Vue的data中有属性message,那么方法中直接用this.message就可以获取到这个message的值
在下面的例子中可以看出,普通函数的this指向的就是Vue的实例,this.message可以获取到data中的值,而箭头函数的this指向了window,不能获取到值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="app">
<button v-on:click="getMessage">获取message的值</button>
</div>
<script>
new Vue({
el : '#app',
data : {
message : "hello vue!"
},
methods : {
// 箭头函数的this指向了window,其实应该指向vue的实例
// 普通函数
getMessage : function(){
// alert(this.message);
console.log(this); // 指向Vue的实例
},
// 箭头函数
getMessage : ()=>{
console.log(this); // window
}
}
})
</script>
</body>
</html>
网友评论