javascript - 在 Vue 中调用“this”会返回 Window
问题描述
我一生都无法弄清楚这一点。我有一个看起来超级简单的代码块,实例化一个新的 Vue 对象,该对象连接到一个带有 id 提供程序的 div。
const app = new Vue({
el: '#providers',
data: {
providers: []
},
created: () => {
console.log(this);
},
})
出于某种原因,当我调用console.log(this)
created 时,它正在返回"Window {window: Window, self: Window, document: document, name: "", location: Location, …}"
我在跑步Vue 2.6.12
。谁能帮我解决这个问题?
因此,我无法在我的生命周期命令中访问我的任何数据。
解决方案
我认为问题出在箭头函数=>
上:它没有自己的绑定this
or super
,不应该用作方法(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/函数/箭头函数)。
要绑定this
到方法,请使用function
长符号或短符号。
长符号:
const app = new Vue({
el: '#providers',
data: {
providers: []
},
created: function () {
console.log(this);
},
})
简写:
const app = new Vue({
el: '#providers',
data: {
providers: []
},
created() {
console.log(this);
},
})
推荐阅读
- ios - 使用 VB.NET 读取 iOS 驱动器
- javascript - concatMap 无法处理数组中的所有项目
- hive - Hive SQL - 拆分字符串固定长度
- php - PHP - 服务器端 HTML
- c++ - Accidentally dragged a file
- python - Pandas Concatenation no longer has sort keyword argument
- branch.io - 分支 io 添加自定义数据
- java - How do I compare fractions to find duplicates and only add the unique fractions to an array in Java?
- excel - Paste contents of range into 3 different workbooks
- javascript - 在 html 上使用 JavaScript 增加字体大小