📜  Prototype-枚举(1)

📅  最后修改于: 2023-12-03 15:33:48.415000             🧑  作者: Mango

程序员介绍:Prototype枚举

简介

JavaScript是一种基于原型继承的语言,每个对象都有一个内部的[[Prototype]]属性。Prototype枚举是一种遍历对象实例属性的方法,在原型链中查找所有可枚举属性并返回一个数组。JavaScript中的枚举操作可以让我们遍历一个对象的所有属性并执行相应的操作。

语法
Object.keys(obj)
Object.getOwnPropertyNames(obj)
Object.keys()

Object.keys() 方法返回一个由一个给定对象的自身可枚举属性组成的数组。

语法
Object.keys(obj)
参数
  • obj: 必选参数,要返回其枚举属性的对象。
返回值

一个表示给定对象的所有可枚举属性的字符串数组。

示例
let obj = {
  name: "Tom",
  age: 18,
  gender: "male"
}

let keys = Object.keys(obj)
console.log(keys) // ["name", "age", "gender"]
Object.getOwnPropertyNames()

Object.getOwnPropertyNames() 方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组。

语法
Object.getOwnPropertyNames(obj)
参数
  • obj: 必选参数,要返回其属性的对象。
返回值

一个表示给定对象的所有属性的属性名的字符串数组。

示例
let obj = {
  name: "Tom",
  age: 18
}

Object.defineProperty(obj, "gender", {
  value: "male",
  enumerable: false
});

let propertyNames = Object.getOwnPropertyNames(obj)
console.log(propertyNames) // ["name", "age", "gender"]
总结

通过使用Object.keys()和Object.getOwnPropertyNames() 遍历对象属性可以获取所有可枚举和不可枚举的属性名称。实现对对象实例中所有属性的操作可以使用这两种方法来枚举对象中的属性。在项目开发中,这种遍历操作非常常见,特别是在操作对象属性时,非常有帮助。