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