JS数据属性与存取器属性

1.常见形式

var obj = {
  a:5,//数据属性
  get b(){return this.a+1},//存取器(寄存器)属性
  set b(value){this.a=value}
}

2. 属性特性

数据属性有4个特性:value,writable,enumerable,configurable
存取器有4个特性:get,set,enumerable,configurable(前两个为函数,且set接收一个参数)

3.常用方法

Object.getOwnPropertyDescriptor(obj,'a') 获取对象某个属性的描述符
Object.defineProperty(obj,'b',{...4个特性...}) 定义某个对象的具有特性的属性
Object.defineProperties(obj,{'b':{...4个特性...},'c':{...4个特性...}}) 定义某个对象的具有特性的属性

4.注意事项

1.writable设置为false并且configurable为true时仍可以用Object.defineProperty来更改value
2.configurable设置为false,仍可将writable和enumerable从true改成false,反之则不可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 JavaScript提供了一个内部数据结构,用来描述一个对象的属性的行为,控制它的行为。这被称为“属性描述对...
    zjh111阅读 739评论 0 0
  • 来自:参 考 原 文 对象是由多个名/值对组成的无序的集...
    wyude阅读 1,286评论 1 7
  • 从es5开始,js中开始拥有了一种描述属性特征的特性(即属性描述符)。根据特性的不同,可以把属性分成两种类型:数据...
    hope7th阅读 742评论 0 0
  • 什么是属性描述符 创建一个对象最常用的方式是声明的形式,大概语法是这样的: 也可以采用构造形式,创建一个Objec...
    冰果2016阅读 2,928评论 0 5
  • 1、下午妈妈打电话给我,问我好不?因为我有几天没打电话给他们了,她们担心挂念,要我记得去拿自家种的菜,心里满满的幸...
    静是美好阅读 169评论 0 0