JS 本地作用域中“相同”变量的多重化身 - chrome 调试器

问题描述 投票:0回答:1

看看 javascript 中的 this 循环,以及调试器中显示的内容。由于某种原因,

item
变量出现了 4 次,但应该只有 1 次(除非我似乎遗漏了一些东西)。

您可以在右侧看到

filteredAttributes.values
是一个包含1个对象的数组。当设置断点时,它会被排序和映射,第一次进入内部循环,会显示意外的值。

这是怎么回事?!

multiple variable occurrences

javascript google-chrome debugging
1个回答
0
投票

如果您在循环内使用

var
声明
item
,则每次迭代可能会使用相同的变量,从而导致意外结果。尝试使用
let
而不是
var
来声明
item
。这确保了
item
具有块作用域,并且为每个循环迭代创建一个新的绑定,这可能会解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.