
ES6(ECMAScript 2015) – 객체 리터럴 확장 – 0 – 속성 계산명
소제목: 객체 리터럴 확장과 속성 계산명
ES6(ECMAScript 2015)에서는 객체 리터럴에 새로운 기능들이 도입되었습니다. 이 중에서도 “속성 계산명(Computed property names)”은 객체의 속성 이름을 동적으로 결정할 수 있는 기능입니다. 속성 계산명을 사용하면 객체 리터럴 내부에서 대괄호([])를 사용하여 계산된 표현식을 사용하여 속성 이름을 지정할 수 있습니다.
예를 들어, 다음과 같은 객체를 생각해보겠습니다:
const key = "name";
const value = "John";
const person = {
[key]: value
};
console.log(person.name); // "John"
위의 예시에서 key
라는 변수는 “name”을 저장하고 있습니다. 이때, 객체 리터럴 내부에서 [key]
로 속성 계산명을 사용하면, person
객체의 속성 이름이 동적으로 “name”이 되는 것입니다. 그 결과, person.name
은 “John”이 됩니다.
예시와 비유적인 표현
속성 계산명은 객체를 유연하게 만들어주는 도구입니다. 비유적으로 생각해보면, 속성 계산명은 마치 특별한 마법의 열쇠 같습니다. 이 열쇠를 사용하면 객체의 속성을 마음대로 열고 닫을 수 있습니다. 예를 들어, 주어진 상황에 따라 다른 속성을 가진 객체를 만들고 싶다고 가정해봅시다. 이때, 속성 계산명을 사용하면 해당 상황에 맞게 객체를 유연하게 조작할 수 있습니다.
예를 들어, “name”이라는 속성 이름을 가진 객체를 만들어야 한다고 가정해봅시다. 그러나 어떤 경우에는 “name” 대신 “이름”이라는 이름을 사용해야 한다면 어떻게 해야할까요? 이때 속성 계산명을 사용하면 됩니다. 계산된 표현식을 사용하여 객체를 생성하면, 그 결과로 어떤 속성 이름이 나올지를 유연하게 결정할 수 있습니다. 이는 마치 상황에 따라 다른 열쇠를 사용하여 객체의 속성을 열고 닫는 것과 같습니다.
속성 계산명의 다양한 활용 예시
속성 계산명은 다양한 상황에서 유용하게 사용될 수 있습니다. 몇 가지 예시를 살펴보겠습니다.
예시 1: 동적인 속성 이름 생성하기
const prefix = "property";
const suffix = "Value";
const index = 1;
const obj = {
[`${prefix}${index}`]: `${prefix} ${index} ${suffix}`
};
console.log(obj.property1); // "property 1 Value"
위의 예시에서는 [
${prefix}${index}]
를 사용하여 동적으로 속성 이름을 생성하고 있습니다. prefix
와 index
를 조합하여 “property1″이라는 속성 이름이 만들어지고, 해당 속성에는 “property 1 Value”라는 값이 저장됩니다.
예시 2: 계산된 메서드 이름 생성하기
const action = "play";
const obj = {
[`${action}Game`]() {
console.log(`Let's ${action} a game!`);
}
};
obj.playGame(); // "Let's play a game!"
위의 예시에서는 속성 계산명을 사용하여 메서드 이름을 동적으로 생성하고 있습니다. [
${action}Game]
을 사용하여 메서드 이름을 “playGame”으로 정의하였고, 해당 메서드는 “Let’s play a game!”이라는 메시지를 출력합니다. 이렇게 객체 리터럴 내에서 동적인 메서드 이름을 생성할 수 있습니다.
주의해야 할 점
속성 계산명을 사용할 때 주의해야 할 몇 가지 사항이 있습니다.
첫째, 계산된 표현식은 문자열로 평가됩니다. 따라서, 속성 계산명을 사용할 때에는 반드시 문자열을 반환하는 표현식을 사용해야 합니다. 그렇지 않으면 에러가 발생할 수 있습니다.
둘째, 속성 계산명은 객체 리터럴 내에서만 사용할 수 있습니다. 다른 곳에서는 사용할 수 없으므로 주의해야 합니다.
셋째, ES6 이전의 환경에서는 속성 계산명을 지원하지 않을 수 있습니다. 따라서, 호환성을 고려해야 하는 경우에는 속성 계산명을 사용하지 않는 것이 좋습니다.
요약
ES6(ECMAScript 2015)에서 도입된 속성 계산명은 객체 리터럴 내에서 동적으로 속성 이름을 결정할 수 있는 기능입니다. 이를 활용하면 객체를 유연하게 만들 수 있으며, 다양한 상황에 맞게 속성 이름을 동적으로 생성할 수 있습니다. 속성 계산명은 마치 마법의 열쇠처럼 객체의 속성을 열고 닫을 수 있는 도구입니다. 다만, 주의해야 할 점들이 있으므로 이에 유의하여 사용해야 합니다.
ES6(ECMAScript 2015)의 객체 리터럴 확장 중 “속성 계산명”에 대한 설명이었습니다. 소제목과 예시를 통해 자세하게 설명하였으며, 비유적인 표현을 사용하여 쉽게 이해할 수 있도록 노력하였습니다. 해당 내용을 보충하는 주의해야 할 점들도 함께 제시하였습니다.