Nav*_*eth 3 javascript json properties object
我需要为javascript对象定义属性.
var obj = {};
obj['prop1'] = 1
以上述方式,我们可以定义属性.
现在,让我们使用Object.defineProperty
var obj = {};
Object.defineProperty(obj,'prop1',{value:1});
这是另一种方式.
两者有什么区别?
是否Object.defineProperty检查该属性已被定义或没有?
我相信obj['prop1'] = 1检查属性
谢谢:)
编辑
这些之间的任何性能变化?
既不是直接对象访问,也Object.defineProperty不会" 检查 "现有属性.这两者之间的唯一区别是修改属性描述符值的可能性.
属性描述符是
这些都是true通过使用直接属性访问来设置的.随着Object.defineProperty你必须单独设置这些属性的选项.我建议你阅读这个MDN,以了解其含义.
例如,如果一个属性拥有该标志configurable=false,则不能覆盖或删除它(这可能是您的问题).
关于表现:
由于Object.defineProperty每次都需要执行一个函数,因此它必须比对象的直接访问慢.我创建了这个小基准:
http://jsperf.com/property-access-with-defineproperty
然而,即使差异看起来很大,你也可能不会忘记它的价值和原因Object.defineProperty.
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |