Object.getOwnPropertyDescriptor():获取一个对象的属性的详细的描述
Object.defineProperty():修改对象属性里的对象
Object.getOwnPropertyNames():获取对象自己自身挂载的属性,不包括继承的
Object.getOwnPropertySymbols():拿到对象的Symbol值组成一个数组
1.按能否被实例直接访问
a.私有属性:只能被成员方法访问,但是不能被实例直接访问
b.公有属性
2.按照是否可枚举(能否被for...in遍历)
可枚举属性是指那些内部“可枚举”标志(enumerable)设置为true的属性,对于通过直接的赋值和属性初始化的属性,该标识值默认为true,对于通过Object.defineProperty等定义的 属性,该标识值默认为false。
a.可枚举属性
b.不可枚举属性
3.根据属性挂载的位置
![](https://img2020.cnblogs.com/blog/2058146/202012/2058146-20201211193436642-1209400250.png)
4.按访问、修改的特点
5.根据key的类型划分