웹 개발/Javascript
[Javascript] ES6 Enhanced Object Literals(강화된 객체 리터럴 표현 객체 함수 축약, 속성 축약)
코딩하는흑구
2020. 3. 21. 20:15
안녕하세요. 오늘은 자바스크립트에서 객체를 표현하는 방법중 ES6에서 추가된 내용을 포스팅해보려고 합니다.
먼저 객체를 선언할 때, 변수와 함수를 다음과 같이 프로퍼티로 표현할 수 있었습니다.
var obj = {
property1 : 100,
function1 : function() {
console.log('call function1');
}
};
obj.property1; //100
obj.function1(); //call function1
흔하디 흔한 객체 선언입니다.
프로퍼티명 : 값, 프로퍼티명 : 함수
그런데 이부분을 ES6에서는 다음과 같이 표현할 수 있게 되었습니다.
먼저, 함수부분입니다.
var obj = {
function1() {
console.log('call function1');
}
};
obj.function1(); //call function1
기존에는 아래와 같았다면
프로퍼티 : 익명함수명() { 함수바디 }
[ES6]에서 업데이트된 객체 함수 표현식은
프로퍼티명() { 함수바디 }
이렇게 표현할 수 있게 되었습니다.
다음은 변수부분입니다.
var property1 = 100;
var obj = {
property1 : property1,
};
property1; //100
obj.property1; //100
property1이라는 변수명을 가진 100이라는 값이 obj 객체의 property1이라는 속성명의 값으로 할당되었습니다.
이때, 속성명과 변수명이 일치한다면 다음과 같은 문법이 적용될 수 있습니다.
[ES6]
var property1 = 100;
var obj = {
property1
};
property1; //100
obj.property1; //100
어차피 속성명도 property1이고 할당하는 변수명이 property1이고 둘의 명명을 같이 해주어야 할때는 유용한 표현법인 것 같습니다.