1:Object.assign() 方法:
Object.assign() 是一个用于复制对象属性的方法。
Object.assign() 方法是ES6中引入的一个非常有用的工具,它允许你将一个或多个源对象的所有可枚举属性复制到目标对象中。这个方法接受目标对象作为其第一个参数,然后接受一个或多个源对象作为后续参数。完成复制后,该方法返回目标对象。以下是一些关键点:
基本用法:
你可以使用 Object.assign() 来合并多个对象的属性到一个目标对象中。例如,如果你有一个空对象 target 和两个源对象 source1 与 source2,通过调用 Object.assign(target, source1, source2),target 对象将会包含 source1 和 source2 的所有可枚举属性。
返回值:
Object.assign() 方法的返回值是目标对象,这意味着你可以链式调用或者在需要时直接使用返回结果。
注意事项:
在使用 Object.assign() 时,需要注意以下几点:
它只复制源对象的可枚举属性,不包括不可枚举属性和继承的属性。
Object.assign() 进行的是浅拷贝,如果源对象的属性值本身是对象,则复制的是引用地址,而不是创建一个新的对象副本。
如果目标对象和源对象有同名属性,那么目标对象中的属性将被源对象中的属性覆盖。
对于原始类型包装对象(如 Number、Boolean、String 等),Object.assign() 会将其转换为对应的基本类型值后再进行复制。
综上所述,Object.assign() 是一个非常实用的JavaScript方法,它简化了对象属性合并的过程,并且在处理一些常见的对象操作时提供了便利。
使用 Object.assign()
方法的示例:
// 定义两个源对象
const source1 = { a: 1, b: 2 };
const source2 = { c: 3, d: 4 };
// 创建一个空的目标对象
const target = {};
// 使用 Object.assign() 将源对象的属性复制到目标对象中
Object.assign(target, source1, source2);
// 输出目标对象的内容
console.log(target); // { a: 1, b: 2, c: 3, d: 4 }
在上面的示例中,我们首先定义了两个源对象 source1
和 source2
,它们分别包含一些属性。然后,我们创建了一个空的目标对象 target
。接下来,我们使用 Object.assign()
方法将 source1
和 source2
的所有可枚举属性复制到 target
对象中。最后,我们通过 console.log()
打印出 target
对象的内容,可以看到它包含了 source1
和 source2
的所有属性。
这个例子展示了如何使用 Object.assign()
方法来合并多个对象的属性到一个目标对象中,并验证了该方法返回的是目标对象本身。
2.Object.values()方法:
Object.values(obj)
方法是 JavaScript 中的一个内置函数,用于返回给定对象自身的所有可枚举属性值的数组。这个方法不会改变原始对象。
Object.values()
方法的使用示例:
// 定义一个对象
const person = {
name: "Alice",
age: 25,
country: "Wonderland"
};
// 使用 Object.values() 获取对象的所有属性值
const values = Object.values(person);
// 输出结果:["Alice", 25, "Wonderland"]
console.log(values);
在这个例子中,我们有一个名为 person
的对象,它包含三个属性:name
、age
和 country
。通过调用 Object.values(person)
,我们得到一个包含这些属性值的新数组 values
。这个数组直接反映了对象的属性值,按照它们在对象中出现的顺序排列。
需要注意的是,Object.values()
仅返回对象自身的属性值,不包括从原型链上继承的属性值。此外,如果属性值本身是一个对象,则返回的是该对象的引用,而不是其属性值的数组。