美文网首页
object.defineproperty和{}的区别

object.defineproperty和{}的区别

作者: 开船的 | 来源:发表于2018-07-04 13:44 被阅读0次

var o = {};

o.a = 1;

// 等同于 :Object.defineProperty(o, "a", {

  value : 1,

  writable : true,

  configurable : true,

  enumerable : true});

// 另一方面,

Object.defineProperty(o, "a", { value : 1 });

// 等同于 :Object.defineProperty(o, "a", {

  value : 1,

  writable : false,

  configurable : false,

  enumerable : false});

属性特性 enumerable 定义了对象的属性是否可以在 for…in 循环和 Object.keys() 中被枚举。如果设置false,在循环中该属性将不被取到。

configurable 特性表示对象的属性是否可以被删除即:delete o.a无效,以及除 writable 特性外的其他特性是否可以被修改,即:o.a=7无效。

相关文章

网友评论

      本文标题:object.defineproperty和{}的区别

      本文链接:https://www.haomeiwen.com/subject/aceeuftx.html