작성자 : 황유진

검수자 : 장기효, 배광식

Enhanced Object Literals

Literal

  • new를 사용하지 않고 객체를 만드는 것을 리터럴이라 한다.
var jimmy = new Object();
jimmy.firstName = 'Bae';
jimmy.age = 40;
console.log(1, jimmy); // 1 { firstName: 'Bae', age: 40 }

// literal
var jimmy = {
    firstName: 'Bae',
    age: 40
};
console.log(2, jimmy); // 2 { firstName: 'Bae', age: 40 }

단축 표기

  • 객체 속성의 속성 이름(property name)과 (value)의 변수명이 같을 경우 축약이 가능하다.
// ES5
var firstName = 'Bae';
var jimmy = {
    firstName: firstName
};
console.log(jimmy); // { firstName : 'Bae' }

// ES6
const firstName = 'Bae';
const jimmy = {
    firstName
};
console.log(jimmy); // { firstName : 'Bae' }
  • 객체의 속성에 함수를 정의하는 경우 function 키워드를 쓰지 않고도 아래와 같이 간편하게 메서드 함수를 정의할 수 있다.
// ES5
var math = {
    sum: function() {
        return 10 + 20;
    }
};
math.sum(); // 30

// ES6
const math = {
    sum() {
        return 10 + 20;
    }
};
math.sum(); // 30
  • 객체의 속성 이름을 동적으로 선언할 수 있다.
const parent = ['Mother', 'Father'];
const jimmy = {
      firstName: 'Bae',
      age: 40,
      ['parent' + parent[0]]: 'Susan Park',
      ['parent' + parent[1]]: 'Peter Bae'
};
console.log(jimmy.parentMother); // Susan Park
console.log(jimmy.parentFather); // Peter Bae

results matching ""

    No results matching ""