ES6 中 Object 有哪些方法
ES6 是 EcmaScript 的第六个版本,对于 JavaScript 这门编程语言而言,ES6 的出现是一次巨大飞跃。ES6 提供了很多新的语法和 API,其中包括对 Object 类型的增强。本文将介绍 ES6 中 Object 对象的方法,并根据小标题进行详细阐述。
1. Object.assign()
介绍
Object.assign 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它至少需要两个参数,第一个参数是目标对象,后面参数都是源对象。如果目标对象中已经存在某个属性,则源对象中相同属性的值会覆盖目标对象中的值。这个方法会返回目标对象。
用法
let target = { a: 1, b: 2 };
let source = { b: 3, c: 4 };
Object.assign(target, source);
console.log(target); // { a: 1, b: 3, c: 4 }
说明
在上面的例子中,我们定义了一个 target 对象和一个 source 对象。然后我们使用 Object.assign 方法将 source 对象的可枚举属性复制到目标对象 target 中。在这个例子中,源对象 source 中的属性 b 覆盖了目标对象 target 中的 b 属性。
还需要注意的是,如果目标对象中已经存在某个属性,则源对象中相同属性的值会覆盖目标对象中的值。如果源对象有多个属性名相同的属性,后面的会覆盖前面的。
2. Object.getOwnPropertyDescriptors()
介绍
Object.getOwnPropertyDescriptors 方法返回指定对象所有自身属性(非继承属性)的描述符。
用法
let obj = { name: 'John', age: 18 };
let descriptors = Object.getOwnPropertyDescriptors(obj);
console.log(descriptors); // { name: { value: 'John', writable: true, enumerable: true, configurable: true }, age: { value: 18, writable: true, enumerable: true, configurable: true } }
说明
在上面的例子中,我们定义了一个对象 obj,有两个属性,name 和 age。然后我们使用 Object.getOwnPropertyDescriptors 方法获取了该对象的所有自身属性(非继承属性)的描述符。
3. Object.is()
介绍
Object.is 方法用于比较两个值是否相同。它与 === 操作符有着相同的行为,但稍有不同的地方。+0 不等于 -0,NaN 等于 NaN。
用法
console.log(Object.is(1, 1)); // true
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(+0, -0)); // false
说明
在上面的例子中,我们使用 Object.is 方法比较了两个数值。第一个比较结果为 true,说明它们相同;第二个比较结果也为 true,说明 NaN 等于 NaN;第三个比较结果为 false,说明 +0 不等于 -0。
4. Object.entries()
介绍
Object.entries 方法返回一个给定对象的所有可枚举属性的键值对数组。
用法
let obj = { a: 1, b: 2, c: 3 };
let entries = Object.entries(obj);
console.log(entries); // [ ['a', 1], ['b', 2], ['c', 3] ]
说明
在上面的例子中,我们定义了一个对象 obj,有三个属性。然后我们使用 Object.entries 方法获取了该对象的所有可枚举属性的键值对数组。
5. Object.fromEntries()
介绍
Object.fromEntries 方法是 Object.entries 方法的逆操作,用于将一个键值对数组转换为对象。
用法
let entries = [ ['a', 1], ['b', 2], ['c', 3] ];
let obj = Object.fromEntries(entries);
console.log(obj); // { a: 1, b: 2, c: 3 }
说明
在上面的例子中,我们定义了一个键值对数组 entries,然后我们使用 Object.fromEntries 方法将该数组转换为一个对象。
6. Object.values()
介绍
Object.values 方法返回一个给定对象的所有可枚举属性的值的数组。
用法
let obj = { a: 1, b: 2, c: 3 };
let values = Object.values(obj);
console.log(values); // [ 1, 2, 3 ]
说明
在上面的例子中,我们定义了一个对象 obj,有三个属性。然后我们使用 Object.values 方法获取了该对象的所有可枚举属性的值的数组。
结语
以上是 ES6 中 Object 对象新增的方法,虽然不是很多,但也为我们提供了更加高效和便捷的编程方法。这些方法在实际开发中可以大大提高开发效率。如果想了解更多相关的 API,请参考官方文档。