在 JavaScript 中,Object 对象是所有对象的基类,它提供了许多实用的方法来操作和处理对象。掌握这些方法可以让我们在开发过程中更加高效地操作对象。下面我们将详细介绍一些常用的 Object 对象方法。
Object.assign()Object.assign() 方法用于将一个或多个源对象的所有可枚举属性复制到目标对象。它会返回目标对象。
Object.assign(target,...sources);
const target = { a: 1 };const source1 = { b: 2 };const source2 = { c: 3 };const result = Object.assign(target, source1, source2);console.log(target); // { a: 1, b: 2, c: 3 }console.log(result); // { a: 1, b: 2, c: 3 }
Object.keys()Object.keys() 方法会返回一个由给定对象的所有可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致。
Object.keys(obj);
const person = {name: 'John',age: 30,city: 'New York'};const keys = Object.keys(person);console.log(keys); // ['name', 'age', 'city']
Object.values()Object.values() 方法返回一个给定对象所有可枚举属性值的数组,值的顺序与使用 for...in 循环遍历该对象时返回的顺序一致。
Object.values(obj);
const person = {name: 'John',age: 30,city: 'New York'};const values = Object.values(person);console.log(values); // ['John', 30, 'New York']
Object.entries()Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致。
Object.entries(obj);
const person = {name: 'John',age: 30,city: 'New York'};const entries = Object.entries(person);console.log(entries);// [['name', 'John'], ['age', 30], ['city', 'New York']]
Object.freeze()Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。
Object.freeze(obj);
const person = {name: 'John'};Object.freeze(person);person.name = 'Jane'; // 不会生效person.newProp = 'test'; // 不会生效console.log(person); // { name: 'John' }
Object.seal()Object.seal() 方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要原来是可写的就可以改变。
Object.seal(obj);
const person = {name: 'John'};Object.seal(person);person.name = 'Jane'; // 可以修改person.newProp = 'test'; // 不会生效console.log(person); // { name: 'Jane' }
| 方法 | 功能 | 示例返回值 |
|---|---|---|
Object.assign() |
复制一个或多个源对象的所有可枚举属性到目标对象 | 目标对象 |
Object.keys() |
返回对象所有可枚举属性名组成的数组 | ['name', 'age'] |
Object.values() |
返回对象所有可枚举属性值组成的数组 | ['John', 30] |
Object.entries() |
返回对象所有可枚举属性的键值对数组 | [['name', 'John'], ['age', 30]] |
Object.freeze() |
冻结对象,不能添加、删除、修改属性 | 原对象(但已被冻结) |
Object.seal() |
封闭对象,不能添加新属性,可修改已有可写属性 | 原对象(但已被封闭) |
通过熟练掌握这些 Object 对象的常用方法,我们可以更加灵活地操作 JavaScript 中的对象,提高开发效率和代码质量。希望本文能帮助你更好地理解和运用这些方法。