javascript - variable.Property = "test"与 Object.defineProperty(变量 ,"Property")

标签 javascript ecmascript-5

如果我想给一个变量a一个属性P(非访问属性)我不关心它是否可配置/可枚举/可写。

我可以 100% 确定简单地做一个

a.P=value     // or
a["P"]=value

而不是使用

Object.defineProperty

所以基本上,我们不应该碰那个 Object.defineProperty除非我们需要创建访问器和/或我们想要控制属性的可配置/可写/可枚举状态?

最佳答案

我不会说它“更有益”,但它们在功能上是相同的:

a.p = value;

Object.defineProperty(a, 'p', {
    enumerable   : true,
    writable     : true,
    configurable : true,
    value        : value
});

显然后者更冗长,而且如果您要定义许多属性,也很多慢(在 Chrome 中大约慢 1,000 倍):

http://jsperf.com/setting-object-properties

关于javascript - variable.Property = "test"与 Object.defineProperty(变量 ,"Property"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149453/

相关文章:

javascript - Jstree - 无法在 AJAX 调用中检查复选框,适用于经典调用。一个问题?

javascript - 使用 Promises 处理分支

javascript - 不允许将重复项插入数组

javascript - 在严格模式下,什么被认为是 "gaining access to the global object"?

javascript - 深度对象的 getPathValue() 函数

javascript - 如何通过动态 ecma/javascript 表达式生成 vxml 标签

javascript - 等效于 ES6 到 ES5 中的集合

javascript - Polymer 2.0 数据绑定(bind) - 从 html 属性到 Polymer 类

javascript - 从 JSON 对象生成 Material 时间线

javascript - 为什么 ~-1 等于 0 而 ~1 等于 -2?