一、什么是属性描述符
在js中对象有一些属性比如
obj = {
a:123
b:function(){}
...
}
上面这种属性只有两种信息,一是属性的名字,二是属性的值,然而属性其实还有一些其他信息,把这些其他的信息就称为属性描述符,本质是一个对象
属性描述符:表达了一个属性相关的信息(元数据),元数据就是描述数据的数据。
在js中属性也可以进行分类
-
数据属性(上述的例子中的属性就是数据属性)
-
存取器属性
这种属性有一些特点:
1、当给它赋值,它会自动运行一个函数
2、当获取它的值时,会自动运行一个函数
当存取器属性具体运行哪一个函数,就需要属性描述符告诉。
二、存取器属性
存取器属性定义
Object.defineProperty(obj,属性名,属性描述符)