Object.keys()与Object.getOwnPropertyNames()有何关键差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计438个文字,预计阅读时间需要2分钟。
大部分情况下,Object.getOwnPropertyNames() 和 Object.keys() 的功能是相似的,我们通常使用它们来获取一个JSON对象中所有的属性。例如:
javascriptconst obj={ property1: 1, property2: 2 };console.log(Object.keys(obj));
大部分情况下Object.getOwnPropertyNames()与Object.keys(obj)的功能是一样的,我们一般也是用来获取一个JSON对象中所有属性,例如
const obj = { property1: 1, property2: 2, }; console.log(Object.keys(obj)); console.log(Object.getOwnPropertyNames(obj));
输出:
> Array ["property1", "property2"]
> Array ["property1", "property2"]
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
共同点:都是返回自身的属性,不会返回原型链上的。
本文共计438个文字,预计阅读时间需要2分钟。
大部分情况下,Object.getOwnPropertyNames() 和 Object.keys() 的功能是相似的,我们通常使用它们来获取一个JSON对象中所有的属性。例如:
javascriptconst obj={ property1: 1, property2: 2 };console.log(Object.keys(obj));
大部分情况下Object.getOwnPropertyNames()与Object.keys(obj)的功能是一样的,我们一般也是用来获取一个JSON对象中所有属性,例如
const obj = { property1: 1, property2: 2, }; console.log(Object.keys(obj)); console.log(Object.getOwnPropertyNames(obj));
输出:
> Array ["property1", "property2"]
> Array ["property1", "property2"]
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
共同点:都是返回自身的属性,不会返回原型链上的。

