객체의 프로퍼티를 좀 더 간결하게 표현하는 방식이 있다.
활용할 변수의 이름과 프로퍼티 네임이 같거나,
프로퍼티 네임과 벨류를 사용할 변수나 함수의 이름이 같다면
중복해서 작성하지 않고 하나만 작성해줄 수 있다.
그 예시들을 쭉 살펴보자.
모던한 프로퍼티 표기법
const myName = "SeopE";
const birth = "0101";
const job = "백수";
const user = {
myName: myName,
birth: birth,
job: job,
};
위와 같이 변수에 할당된 값을 활용해서 프로퍼티를 만들 떄,
활용할 변수의 이름과 프로퍼티 네임이 같다면 아래와 같이 하나만 작성하는 표현이 가능하다.
const myName = "SeopE";
const birth = "0101";
const job = "백수";
const user = {
// myName: myName,
// birth: birth,
// job: job,
myName,
birth,
job,
};
console.log(user);
또한 프로퍼티 네임과 벨류로 사용할 변수나 함수의 이름이 같다면
중복해서 작성하지 않고 하나만 작성해줄 있다.
function getFullName() {
return `${this.firstName} ${this.lastName}`;
}
const user = {
firstName: "Seop",
lastName: "Yee",
// getFullName: getFullName, // 생략 가능
getFullName,
};
const GameId = {
firstName: "baxter",
lastName: "yhs",
// getFullName: getFullName, // 생락 가능
getFullName,
};
console.log(user.getFullName());
console.log(GameId.getFullName());
외부에 있는 함수를 메소드로 만들 때 말고도
객체 내부에서 메소드를 선언할 때도 활용할 수 있는 표현이 있다.
const user1 = {
firstName: "Seop",
lastName: "Yee",
getFullName: function () {
return `${this.firstName} ${this.lastName}`;
},
};
console.log(user1.getFullName());
이 때 콜론(:)과 function 키워드를 생략할 수 있다.
const user1 = {
firstName: "Seop",
lastName: "Yee",
// getFullName: function () { // 콜론과 function 생략가능
getFullName() {
return `${this.firstName} ${this.lastName}`;
},
};
console.log(user1.getFullName());
그리고 프로퍼티 네임을 표현식으로 나타내는 방법이 있다.
계산된 속성명 (Computed property name)
표현식을 대괄호로 감싸주면 표현식의 값을 프로퍼티 네임으로 쓸 수 있으며
문법은 다음과 같다.
const test = {
[표현식]: 값,
}
다음 예시를 살펴보자
const tester = {
["Seop" + "E"]: "value",
};
console.log(tester);
문자열 'Seop'와 문자열 'E' 를 연결한 표현식을 프로퍼티 네임에 작성해줬고
값으로는 그냥 문자열 'value'를 작성했다.
결과를 확인해보면
'SeopE' 라는 프로퍼티 네임이 잘 생성된 것을 확인할 수 있다.
이렇게 대괄호를 감싸서 표현식을 작성하는 방식은 아래의 코드를 살펴보면
const propertyName = "birth";
const getJob = () => "job";
const x = {
["your" + "name"]: "SeopE",
[propertyName]: 2024,
[getJob()]: "백수",
};
console.log(x);
위와 같이 변수에 담긴 값을 사용하거나 [propertyName]
함수의 리턴값을 사용할 수도 있으니 [getJob()]
이 방식을 어떤 식으로 활용하면 좋을지 한번 생각해볼 필요 있다.
이렇게 객체를 만들 때 프로퍼티 네임을 표기하는 방법을 활용해봤는데
객체의 프로퍼티를 좀 더 간결하게 작성할 수 있고
좀 더 다양한 방식으로 만들어 낼 수 있기에
코드를 작성할 때 유용하게 활용해보자.
'JS' 카테고리의 다른 글
(20) Modern JavaScript - 구조 분해 (Destructuring) (0) | 2024.12.04 |
---|---|
(19) Modern JavaScript - 옵셔널 체이닝 (Optional Chaining) (0) | 2024.12.03 |
(17) Modern JavaScript - Spread 구분 (0) | 2024.12.02 |
(16) Modern JavaScript - 조건 연산자 (Conditional operator) = 삼항 연산자 (Ternary operator) (0) | 2024.11.29 |
(15) Modern JavaScript - 문장과 표현식 (0) | 2024.11.28 |