如果我想给变量a
一个属性P
(非访问属性)和我不在乎它是否可配置/可枚举/可写。
我可以100%确定它实际上更有益(在所有方面你都能想到)只需做一个
a.P=value // or
a["P"]=value
而不是使用
Object.defineProperty
基本上,除非我们需要创建访问器和/或我们想要控制属性的可配置/可写/可枚举状态,否则我们不应该触及Object.defineProperty
。
答案 0 :(得分:3)
我不会说它“更有益”,但这些功能完全相同:
a.p = value;
Object.defineProperty(a, 'p', {
enumerable : true,
writable : true,
configurable : true,
value : value
});
如果您定义了许多属性,显然后者更冗长, 更慢(Chrome大约慢1000倍):