js属性描述符

84 阅读1分钟

一、什么是属性描述符

在js中对象有一些属性比如

obj = {
    a:123
    b:function(){}
    ...
}

上面这种属性只有两种信息,一是属性的名字,二是属性的值,然而属性其实还有一些其他信息,把这些其他的信息就称为属性描述符,本质是一个对象

属性描述符:表达了一个属性相关的信息(元数据),元数据就是描述数据的数据。

在js中属性也可以进行分类

  • 数据属性(上述的例子中的属性就是数据属性)

  • 存取器属性

    这种属性有一些特点:

    1、当给它赋值,它会自动运行一个函数

    2、当获取它的值时,会自动运行一个函数

当存取器属性具体运行哪一个函数,就需要属性描述符告诉。

二、存取器属性

存取器属性定义

Object.defineProperty(obj,属性名,属性描述符)