您好,欢迎来到骅坨科技网。
搜索
您的当前位置:首页javascript在哪种情况下不要向Object.prototype中添加可列举属性

javascript在哪种情况下不要向Object.prototype中添加可列举属性

来源:骅坨科技网


绝不要向Object.prototype中添加可列举的(Enumerable)属性

如果你的代码中依赖于for..in循环来遍历Object类型中的属性的话,不要向Object.prototype中添加任何可列举的属性。

但是在对JavaScript执行环境进行增强的时候,往往都需要向Object.prototype对象添加新的属性或者方法。比如可以添加一个方法用于得到某个对象中的所有的属性名:


但是结果是下面这个样子的:


一个可行的解决方案是使用函数而不是在Object.prototype上定义新的方法:


但是如果你确实需要向Object.prototype上添加新的属性,同时也不希望该属性在for..in循环中被遍历到,那么可以利用ES5环境提供的Object.defineProject方法:


以上代码的关键部分就是将enumerable属性设置为false。这样的话,在for..in循环中就无法遍历该属性了。

Copyright © 2019- huatuo5.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务