ES6/7/8/9/10 中的对象方法讲解
JavaScript 对象是一种非常重要的数据类型,位于程序的核心位置。在 ES6 之前,处理对象的方法往往是有限的。但是,自 ES6 开始,JavaScript 对象拥有了许多新的方法,简化了很多操作。在本文中,我们将讨论 ES6/7/8/9/10 中的对象方法,涵盖了以下主题:
- Object.keys() 方法
- Object.values() 方法
- Object.entries() 方法
- Object.getOwnPropertyDescriptor() 方法
- Object.setPrototypeOf() 方法
- Object.assign() 方法
- Object.getOwnPropertyDescriptors() 方法
- Object.fromEntries() 方法
Object.keys() 方法
Object.keys() 方法返回一个对象所有的可枚举属性的名称数组。一个对象的属性是可枚举的,当且仅当该属性存在于对象中,且它的 enumerable 属性设置为 true。例如:
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.keys(obj)); // ["a", "b", "c"]
Object.values() 方法
Object.values() 方法返回一个对象所有的可枚举属性的值数组。例如:
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.values(obj)); // [1, 2, 3]
Object.entries() 方法
Object.entries() 方法将一个对象转换为一个可迭代的键值对数组,其中每个键值对由一个数组表示,第一个元素为属性名称,第二个元素为属性值。例如:
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.entries(obj)); // [["a", 1], ["b", 2], ["c", 3]]
Object.getOwnPropertyDescriptor() 方法
Object.getOwnPropertyDescriptor() 方法返回一个对象的指定属性的描述符。描述符包含属性的值、可写性、可枚举性和可配置性。例如:
const obj = { a: 1 }; console.log(Object.getOwnPropertyDescriptor(obj, "a")); // { value: 1, writable: true, enumerable: true, configurable: true }
Object.setPrototypeOf() 方法
Object.setPrototypeOf() 方法将一个对象的原型(即一个对象的 [[Prototype]] 属性)设置为另一个对象或 null。例如:
const obj = {}; const proto = { a: 1 }; Object.setPrototypeOf(obj, proto); console.log(obj.a); // 1
Object.assign() 方法
Object.assign() 方法将一个或多个源对象的可枚举属性复制到目标对象,并返回目标对象。如果目标对象中的属性已经存在,将会被覆盖。例如:
const target = { a: 1 }; const source = { b: 2 }; Object.assign(target, source); console.log(target); // { a: 1, b: 2 }
Object.getOwnPropertyDescriptors() 方法
Object.getOwnPropertyDescriptors() 方法返回一个指定对象所有自身属性(非继承属性)的属性描述符。例如:
const obj = { a: 1 }; console.log(Object.getOwnPropertyDescriptors(obj)); // { a: { value: 1, writable: true, enumerable: true, configurable: true } }
Object.fromEntries() 方法
Object.fromEntries() 方法将一个二维键值对数组转换为一个对象。该数组必须是一个可迭代对象。例如:
const entries = [["a", 1], ["b", 2], ["c", 3]]; console.log(Object.fromEntries(entries)); // { a: 1, b: 2, c: 3 }
总结
JavaScript 对象在 ES6/7/8/9/10 中得到了很多新的方法,这些方法使得对象的操作变得更加方便和简单。在实际编程过程中,熟练掌握这些方法不仅可以提高开发效率,也可以让代码更加简洁和易于维护。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64673263968c7c53b079569a