在 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 中的对象,提高开发效率和代码质量。希望本文能帮助你更好地理解和运用这些方法。