让javascript对象可以遍历

如果我使用generator函数是Object原型变得可以遍历,会产生什么负面影响吗?
代码如下

Object.prototype[Symbol.iterator] = function* () {
  for(let value in this){
    yield this[value]
  }
}

其实主要想问的是会产生什么负面影响,就是为什么不建议修改,而不是要找替代方案

阅读 2k
4 个回答

建议不要修改原型 了解下lodash.js

感觉用Map代替更好点

一般遍历对象,可以通过 Object.keys(),把得到的keys数组进行遍历即可。

只是每次获取到的keys顺序可能不一致,因为键值对本身是无序的。

Object 的遍历是缺少意义的,因为Object是无序的。
可以使用Object.keys Object.values这些方法去获取键和值的遍历结果,但是每次执行后返回的顺序是不一定的,但是键值是对应的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题