2011-10-09 21 views

Respuesta

8

Object.defineProperty tomaría el valor enumerable: false y configurable: false, mientras que la sintaxis captador objeto literal será por defecto enumerable: true y configurable: true. Esto se puede verificar con Object.getOwnPropertyDescriptor(obj, "prop").

Esto significa que en el primer caso prop se mostrarán en for - in bucles y Object.keys(obj), y haciendo un delete obj.prop fallará (ruidosamente en modo estricto, en silencio lo contrario). Lo opuesto será cierto para el último caso.

Tenga en cuenta que Object.defineProperty (o Object.create o Object.defineProperties) le permitirá elegir por separado la configurabilidad y enumerability de sus propiedades, mientras que la sintaxis de objetos captador literal no lo hará.

Cuestiones relacionadas