一、对象Object创建常用方式:2种方式
const obj = {};// 直接创建一个空对象 => {}
const obj1 = new Object(); // 创建一个空对象实例 => {}
对象Object的静态方法:13中(es5)
静态方法是直接通过Object.xx()来直接调用的方法,只要是继承了 或 是原型链上Object这个对象的都可以
直接使用Object的静态方法。例如:Date对象、Array数组、Number、String等这些都是可以直接
使用Object.xx()之类的静态方法来返回内容。
1. Object.keys(obj) --- 返回一个数组。该数组的成员是该对象键名。(只返回可枚举的属性) --- 对象本身是没有长度的,因此可以借助Object.keys(obj).length的方式来获取一个对象的属性个数。
2.Object.getOwnPropertyNames() --- 返回一个数组。该数组的成员是该对象的键名。(返回可枚举和不可枚举的所有属性)
3. Object.getOwnPropertyDescriptor() --- 获取某个属性的描述对象
4. Object.defineProperty(obj,prop,desc) --- 通过描述对象,定义某个属性obj需要定义属性的当前对象prop当前需要定义的属性名desc属性描述符
5. Object.defineProperties() --- 通过描述对象,定义多个属性。
6. Object.preventExtensions() --- 防止对象扩展
7. Object.isExtensible() --- 判断对象是否可扩展
8. Object.seal() --- 禁止对象配置
9. Object.isSealed() --- 判断一个对象是否可配置
10. Object.freeze() --- 冻结一个对象
11. Object.isFrozen() --- 判断对象对否被冻结
12. Object.create() --- 该方法可以指定原型对象和属性,返回一个新的对象
13. Object.getPrototypeOf() --- 获取对象的(Prototype)原型对象。
对象Object的静态方法: 7种(es6)
1. Object.is() --- 比较两个值对否严格相等(与严格比较运算符(===)的行为基本一直,不同之处只有两个:一个是+0不等于-0;二是NaN等于自身)
2. Object.assign(target,source...) --- 用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)
3. Object.getOwnPropertyDescriptors() --- 返回指定对象所有自身属性(非继承属性)的描述对象
4. Object.setPrototypeOf() --- 用来设置一个对象的(Prototype)原型对象
5. Object.values() --- 返回一个数组。该数组的成员是该对象的键值。(只返回可枚举的属性)
6. Object.entries() --- 返回一个数组,该数组的成员是该对象的键值对数组。(只返回可枚举的属性)
7. Object.fromEntries() --- 是Object.entries()的你操作,用于将一个键值对数组转成对象。
实例方法:6种
对象Object的实例方法: 6种 实例方法是通过new Object()的形式创建出来的对象所能使用的方法,本质是Object.prototype上面的方法。因此其继承者(即其原型链上能找到Object的对象)也是可以使用的。
let obj = {};