es6부터 객체 프로퍼티로 변수를 사용할 때 선언 시 프로퍼티 이름을 생략(Property shorthand)할 수 있다. 이때 프로퍼티 이름은 변수의 이름으로 자동 생성된다.

//es5
var x = 1;
var y = 2;

var obj = {x : x, y : y};

//es6

var obj = { x, y }

메소드를 선언할려면 함수선언식을 프로퍼티에 할당하였다.

// ES5
var obj = {
  name: 'Lee',
  sayHi: function() {
    console.log('Hi! ' + this.name);
  }
};

obj.sayHi(); // Hi! Lee

es6에선 메소드를 선언할 때, function 키워드를 생략한 축약 표현을 사용할 수 있다.

// ES6
const obj = {
  name: 'Lee',
  // 메소드 축약 표현
  sayHi() {
    console.log('Hi! ' + this.name);
  }
};

obj.sayHi(); // Hi! Lee

es5에서 객체 상속 = Object.create() 함수를 사용한다.

es6 부턴 객체 내부에서 proto:으로 지정할 수 있다.

// ES6
const parent = {
  name: 'parent',
  sayHi() {
    console.log('Hi! ' + this.name);
  }
};

const child = {
  // child 객체의 프로토타입 객체에 parent 객체를 바인딩하여 상속을 구현한다.
  __proto__: parent,
  name: 'child'
};

parent.sayHi(); // Hi! parent
child.sayHi();  // Hi! child