: 객체의 프로퍼티가 생성될 때 엔진에 의해 자동 정의되는 상태
프로퍼티에는 두 종류가 있음
const person = {
**// ⭐️ 1. 데이터 프로퍼티들**
fullName: '홍길동',
ageInNumber: 25,
**// ⭐️ 2. 접근자 프로퍼티들**
get name () {
return this.fullName
.split('')
.map((letter, idx) => idx === 0 ? letter : '*')
.join('');
},
get age () { return this.ageInNumber + '세'; },
set age (age) {
this.ageInNumber = Number(age);
}
}
console.log(
person.name, person.age
);


Object의 프로퍼티 어트리뷰트 관련 정적 메서드들getOwnPropertyDescriptor, getOwnPropertyDescriptors객체의 프로퍼티 어트리뷰트들의 설명자를 반환
const person = {
// ⭐️ 1. 데이터 프로퍼티들
fullName: '홍길동',
ageInNumber: 25,
// ⭐️ 2. 접근자 프로퍼티들
get name () {
return this.fullName
.split('')
.map((letter, idx) => idx === 0 ? letter : '*')
.join('');
},
get age () { return this.ageInNumber + '세'; },
set age (age) {
this.ageInNumber = Number(age);
}
}
// 특정 프로퍼티를 지정하여 반환
console.log('1.',
Object.getOwnPropertyDescriptor(person, 'fullName')
);
console.log('2.',
Object.getOwnPropertyDescriptor(person, 'ageInNumber')
);
console.log('3.', // set: undefined
Object.getOwnPropertyDescriptor(person, 'name')
);
console.log('4.', // get, set 모두 있음
Object.getOwnPropertyDescriptor(person, 'age')
);
