object.defineproperty和{}的区别

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无效。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 来自:参 考 原 文 对象是由多个名/值对组成的无序的集...
    wyude阅读 5,034评论 1 7
  • 概述 JavaScript提供了一个内部数据结构,用来描述一个对象的属性的行为,控制它的行为。这被称为“属性描述对...
    zjh111阅读 4,037评论 0 0
  • 概述 JavaScript提供了一个内部数据结构,用来描述一个对象的属性的行为,控制它的行为。这被称为“属性描述对...
    许先生__阅读 3,452评论 0 1
  • 本篇主要介绍JS中常用Object的属性方法。 delete 操作 in 运算符 obj.hasOwnProper...
    boySpray阅读 6,251评论 0 2
  • 《正面管教》之“平等但不相同” P2 重要的是要注意到,平等并不意味着完全相同。四个25分硬币和一张一元纸笔完全不...
    Fly_Catkin阅读 2,444评论 0 0

友情链接更多精彩内容