从forEach内部访问vue数据对象

Sta*_*and 4 javascript vue.js vuejs2

我的数据中包含以下变量:

 data: function () {
    return {
      myVariable: false,
    }
  }
Run Code Online (Sandbox Code Playgroud)

如何从如下所示的循环函数访问此变量?

  anArray.forEach(function(item) {
      this.myVariable = true; 
      // do something
  });
Run Code Online (Sandbox Code Playgroud)

我得到'this'是未定义的,因为它在当前循环函数中查找,而不是在vuejs对象中查找。

Mat*_*ora 17

使用Arrow函数,这样您就不会在forEach循环中创建新范围并保留this对Vue组件的引用。

 anArray.forEach((item) => {
  this.myVariable = true; 
  // do something
});
Run Code Online (Sandbox Code Playgroud)


Tho*_*een 6

您可以绑定this到函数的范围:

anArray.forEach(function(item) {
  this.myVariable = true; 
  // do something
}.bind(this));
Run Code Online (Sandbox Code Playgroud)

另一个是使用箭头符号(我不是 100% 确定):

anArray.forEach((item) => {
  this.myVariable = true; 
  // do something
});
Run Code Online (Sandbox Code Playgroud)