티스토리 뷰
발생일: 2015.05.10
키워드: Object Literals, Object Shorthand, 객체 리터럴
내용:
ES6에는 객체를 좀 더 간결하게 작성할 수 있는 구문이 추가됐다.
글로 설명하는 것보다는 아래 코드를 보는 게 훨씬 이해하기 쉽다.
// 변수명으로 객체를 생성 (Chrome 42+)
var a = 'foo';
var b = 'bar';
var obj = { a, b };
obj.a; //-> 'foo'
obj.b; //-> 'bar'
// ES5의 getter 와 setter 도 여전히 동작한다.
var obj = {
get firstChar() {
return this.name[0];
}
};
obj.name = 'foo';
obj.firstChar; //-> 'f'
// 메서드도 간결하게 정의할 수 있다.
var obj = {
name: 'foo',
getName() {
return this.name;
}
};
obj.getName(); //-> 'foo'
// 속성 이름을 동적으로 계산해 넣을 수 있다. (크롬 42에서는 Experimental JavaScript 옵션을 켜야 확인할 수 있다)
var prop = 'foo';
var obj = {
[prop]: prop
};
obj.foo; //-> 'foo'
obj[prop + 'bar'] = 'bar';
obj.foobar; //-> 'bar';
// 제너레이터를 간결하게 정의할 수 있다.
var o = {
* generator() {
...
}
};
// ES5에서는 속성 이름이 중복될 경우, 문법 에러를 발생했지만 ES6에서는 그렇지 않다.
({ x: 1, x: 2 }); //-> 에러를 발생하지 않는다.
반응형
댓글
공지사항