观察函数表达式影响 Chrome devtool 中的调试

watch function expression affect debug in Chrome devtool

来自 Chrome Devtool 示例 https://googlechrome.github.io/devtools-samples/debug-js/get-started

inputsAreEmpty 函数的第一行添加断点时,inputsAreEmpty() 进入 Watch,inputsAreEmpty() in watch 将调用。

如果将日志插入inputsAreEmpty函数,日志会打印更多次,为什么会这样?

如果您的意思是您将 inputsAreEmpty() 作为 Watch 表达式,则只要 Watch 需要更新其显示,该表达式就会被计算(调用 inputsAreEmpty)。如果你在 inputsAreEmpty 中放置一个断点,当它遇到断点时,Watch 需要更新它的显示——这意味着调用 inputsAreEmpty,它将遇到断点,等等,等等,等等.

一般来说,最好不要在 Watch 表达式中进行函数调用(尽管也有例外)。但是你绝对需要避免在你有断点的 Watch 表达式中进行函数调用,因为它会造成上面的恶性循环。