5

将属性分配给对象和定义它有什么区别?哪个更好以及如何?

这个

 Object.defineProperty(obj,p,propDesc)

或者干脆

 obj.p="someValue";
4

2 回答 2

2

Object.defineProperty让您设置有关该属性的一大堆选项。喜欢enumerablewritable

当您这样做时obj.p = 'something';,您正在使用“默认”选项设置属性。

两者都不是“更好”,它们都有自己的用途。您使用哪一种取决于您的要求。

于 2013-07-18T16:39:56.500 回答
0

正如在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty上找到的

" 此方法允许精确添加或修改对象上的属性。通过赋值添加的普通属性会创建在属性枚举期间显示的属性(for...in 循环或 Object.keys 方法),其值可能会更改,并且可能会被删除。此方法允许将这些额外的详细信息从默认值更改。

于 2013-07-18T16:41:42.547 回答