ES2015 객체와 프로퍼티


ES6 Object에 추가된 기능

ES6에서 추가된 객체의 기능들을 확인해보겠습니다.

프로퍼티 단축 구문

객체의 프로퍼티를 단순하게 표기할 수 있습니다. 예를 들어 외부 변수명을 이용해 객체에 데이터를 전달할 경우 아래와 같이 간략하게 표현할 수 있습니다.

let name = "Alice";
let age = 10;

let alice = { name, age };
console.log(alice);  // { name: 'Alice', age: 10 }


// 기존 ES5 표기법
var alice = {
  name: name,
  age: age
}

계산된 프로퍼티 이름 (Computed Property names)

객체의 프로퍼티 이름에 평가값을 사용할 수 있게 되었습니다. 프로퍼티 이름에 대괄호를 이용해 평가식을 사용할 수 있으며 평가된 값이 문자열 타입으로 전환되어 프로퍼티명으로 사용됩니다.

let name = "myName";
let num = 1;

let person = {
  [ name + num ]: "alice"
}

console.log(person);  // { myName1: 'alice' }

객체의 프로퍼티 명으로 심볼을 사용할 수 있으며, 만약 Symbol이 사용되었다면 그대로 심볼을 프로퍼티명으로 사용합니다.

let person = {
  [ Symbol("name") ]: "Alice"
}

console.log(person);  // { [Symbol(name)]: 'Alice' }

메서드 단축 구문

객체의 메서드를 정의할 때 기존의 함수 리터럴 표기법보다 간략한 표기법을 사용할 수 있습니다.

var alice = {
  intoTheRabbitHole() {
    console.log("Rabbit Hole")
  }
}


// 기존 ES5 표기법
var alice = {
  intoTheRabbitHole: function() {
    console.log("Rabbit Hole")
  }
}

단, method() {} 메서드 표기법은 객체의 메서드로만 사용할 수 있습니다. 즉 객체 생성자 함수로는 사용할 수는 없습니다.