javascript Object. defineProperty の enumerable について

enumerable が true なら、そのプロパティはプロパティ列挙に現れます。プロパティ列挙とは Object.keys などの結果に含まれるということです。

const obj = {}

Object.defineProperty(obj, 'tami', {
  enumerable: true,
  value: 'tami bouz'
})

console.log(Object.keys(obj)) // ["tami"]

Object.defineProperty(obj, 'hito', {
  enumerable: false,
  value: 'hito chan'
})

console.log(Object.keys(obj)) // hito はプロパティ列挙に含まれないので ["tami"] が出力される