多处 `setData` 的场景: 1. 按顺序处理数据,处理完一个数据就 `setData` 一下,这个其实是错误的编码,还会有性能问题! -- 这种场景应该用 `const obj = {}`,所有数据都处理完再一次性 `setData` 来解决 2. 有异步代码时,比如 `setTimeout`,这个时候如果用 `setTimeout` 函数外的闭包变量来 `setData` 的话,就会很危险,因为可能会用旧的数据`覆盖`掉 `setTimeout` 期间其他地方 `setData` 的数据!