JavaScript 之 Object汇总

162 阅读3分钟

一、对象Object创建常用方式:2种方式

const obj = {};// 直接创建一个空对象 => {}
const obj1 = new Object(); // 创建一个空对象实例 => {}

对象Object的静态方法:13中(es5)

静态方法是直接通过Object.xx()来直接调用的方法,只要是继承了 或 是原型链上Object这个对象的都可以
直接使用Object的静态方法。例如:Date对象、Array数组、NumberString等这些都是可以直接
使用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 = {};

1. obj.valueOf() --- 返回一个对象对应的值,默认情况下返回对象本身

2. obj.toString() --- 返回一个对象对应的字符串形式。

3. obj.toLocaleString() --- 返回一个对象对应的本地字符串形式。

4. obj.hasOwnProperty() --- 判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。接受一个字符串为参数,返回一个布尔值,标识该实例对象自身是否具有该属性。

5. obj.isPrototypeOf() --- 判断当前对象是否为另一个对象的原型。

6. obj.propertyIsEnumerable() --- 判断当前对象某个属性是否可枚举