js中,Object是一种用于存储键值集合的数据类型
键即属性 值即属性对应的值或其它实体
对于属性的描述,存在数据描述符与存取描述符两种形式,其中数据描述符为具有值的属性,存取描述符是由getter与setter函数描述的属性。
| 属性 | 类型 | 默认值 | 描述 | 数据描述符 | 存取描述符 |
|---|---|---|---|---|---|
| configurable | Boolean | false | 属性的描述符可否被改变,可否被删除 | 可设置 | 可设置 |
| enumerable | Boolean | false | 是否可枚举 | 可设置 | 可设置 |
| writable | Boolean | false | 是否可改写 | 可设置 | 不可设置 |
| value | any | undefined | 属性对应的值 | 可设置 | 不可设置 |
| get | function | undefined | 属性的getter函数 | 可设置 | 不可设置 |
| set | function | undefined | 属性的setter函数 | 可设置 | 不可设置 |
根据js对象方法返回的数据类型,对js方法进行划分
一、无返回
1、freeze
说明 冻结对象
2、preventExtensions
说明 让对象变的不可扩展
3、seal
封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置
二、字符串
1、constructor
说明 返回创建实例对象的Object构造函数的引用
三、布尔值
1、hasOwnProperty
说明 返回指示对象自身属性中是否具有指定的属性
2、is
说明 判断两个值是否为同一个值 参数1 被比较的第一个值 参数2 被比较的第二个值
3、isExtensible
说明 判断一个对象是否是可扩展
4、isFrozen
说明 判断一个对象是否被冻结
5、isPrototypeOf
说明 判断一个对象是否存在于另一个对象的原型链上
6、isSealed
说明 判断一个对象是否被密封 (密封对象是指那些不可扩展的)
7、propertyIsEnumerable
说明 判断指定的属性是否可枚举
四、Array
1、entries
说明 返回一个给定对象自身可枚举属性的键值对数组
Object.entries({a: 1, b: 2}) // [['a', 1], ['b', 2]]
2、keys
说明 由一个给定对象的自身可枚举属性组成的数组
3、values
说明 由一个给定对象的自身可枚举属性的值组成的数组
4、getOwnPropertyNames
说明 返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
Object.getOwnPropertyNames({a: 1,b: 2}) // ['a', 'b']
五、Object
1、assign
说明 将所有可枚举属性的值从一个或多个源对象分配到目标对象
const source = {a: 1, b: 2}
const target = {c: 3, d: 4}
const result = Object.assign(source, target)
console.log(result) // {a: 1, b: 2, c: 3, d: 4}
2、create
说明 创建一个新对象,使用现有的对象来提供新创建的对象的__proto__
const source = {a: 1, b: 2}
const result = Object.create(source)
console.log(result) // {}
console.log(result.a) // 1
console.log(result.b) // 2
console.log(result.__proto__) // {a: 1, b: 2}
3、defineProperties
说明 直接在一个对象上定义新的属性或修改现有属性,并返回该对象 参数1 当前操作的对象 参数2 其可枚举属性或修改的属性描述符的对象
4、defineProperty
说明 直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 参数1 当前操作的对象 参数2 其可枚举属性或修改的属性描述符的对象
5、fromEntries
说明 把键值对列表转换为一个对象
Object.fromEntries([['a',1 ],['b', 2],['c',3,5]]) // {a: 1, b: 2, c: 3}
六、不可定
1、getOwnPropertyDescriptor
说明 返回指定对象上一个自有属性对应的属性描述符 注:根据访问的属性,返回对应的属性的值
2、# getOwnPropertyDescriptors
说明 返回指定对象上所有自身属性的属性描述符