ES8 新增的对象静态方法 Object.values() 详解

介绍

在 ES8 中,新增了许多对象静态方法,其中 Object.values() 就是其中之一。这个方法可以返回一个给定对象自身可枚举属性的值的数组(不包括原型链上的属性)。它的返回值是按照对象属性的顺序排列的。这个方法的出现,使对象的属性值获取变得更加方便。

用法

Object.values() 方法接收一个对象作为参数,返回一个数组,这个数组包含了这个对象的所有属性值。让我们看一下这个方法的用法:

  • obj:要返回属性值的对象。

返回值:给定对象自身可枚举属性的值所组成的数组。

示例

让我们看一下使用 Object.values() 方法来获取一个对象的属性值的例子。

在这个例子中,我们定义了一个包含三个属性的对象,并使用 Object.values() 方法来获取这个对象的所有属性值。我们把这些属性值存储在一个数组中,并使用 console.log() 方法来打印出这个数组。

深入解析

除了可以获取对象的属性值之外,Object.values() 方法还可以用来处理数组对象。当向 Object.values() 方法传入一个数组对象时,这个方法会返回一个包含数组元素值的新数组。例如:

在这个例子中,我们定义了一个包含五个元素的数组,并使用 Object.values() 方法来获取这个数组的所有元素值。与前述相似,我们把这些元素值存储在一个数组中,并使用 console.log() 方法来打印出这个数组。

对于其他的数据类型,Object.values() 方法同样适用。不过需要注意的是,如果将一个非对象类型的参数传入 Object.values() 方法,它将会抛出 TypeError 异常。

最后要注意的是,Object.values() 只会返回对象自身的属性(即 enumerable 为 true 的属性)。继承而来的属性将不会被包含在返回的数组中。

总结

ES8 新增的对象静态方法 Object.values() 是一个用于获取对象自身的、可枚举的所有属性值的方法。它非常方便,可以便捷地处理对象或数组中的元素值。需要注意的是,如果向这个方法中传入非对象类型的参数,它将会报错。同时,为获取继承而作用的属性值,我们需要使用 Object.getOwnPropertyNames() 方法和 Object.getOwnPropertyDescriptor() 方法来完成。

我们可以在项目中广泛使用 Object.values() 方法,来快速、方便地处理我们所需要的属性值。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65374f9c7d4982a6ebfc8ea8


纠错
反馈