Vue.js无法遍历方法中的对象

Kyl*_*yle 3 javascript methods scoping vue.js vuejs2

我有一个Vue.js组件,该组件的数据变量是JSON对象,并且我已经制作了一种方法,该方法旨在通过键轻松地在该对象中递归查找项目。

这里是:

getJsonItem(lookup, obj=this.cardInfo) {
  for (item in obj) {
    if (item == lookup) {
      return obj[item];
    } else if (obj[item] instanceof Object) {
      getJsonItem(lookup, obj[item]);
    }
  }
},
Run Code Online (Sandbox Code Playgroud)

现在,这在Vue JS之外的控制台中工作得很好,但是当我尝试从Vue JS中作为一种方法运行它时,出现“ ReferenceError:未定义项目”错误。

Vue JS中的变量作用域是否发生了一些有趣的事情,使我无法引用在for循环中声明的“ item”变量?

我确定这可能是我没看到的简单事件。

Dec*_*oon 6

你必须使用varletconst为一个变量声明(在严格模式):

for (const item in obj)
     ^^^^^
Run Code Online (Sandbox Code Playgroud)