const prop1 = 'name'; const obj2 = { add(a, b) { return a + b;} ,[prop1]: 'hemtory' ,[name + 1]: '햄토리' }; obj2.add(1, 2); // 3 obj2[name]; // 'hemtory' obj2.name; // 'hemtory' obj2[name + 1]; // '햄토리'
기존에 객체에 함수를 속성으로 가질 때는
add: function add(a, b) { return a + b;}
위 처럼 했었지만 속성명이랑 함수명이 같으면 하나로 생략이 가능하다.
물론 일반 변수도 생략이 가능하다.그리고 속성명에 변수를 넣어서 사용할 수도 있다.
prop1
에name
이 할당 돼 있는데 그것을[prop1]
으로 속성명을 설정하면
prop1
의 값인name
으로 접근할 수 있다.
obj2[name]
같은 경우obj2.name
으로 접근할 수 있지만
obj2[name + 1]
은 불가능하다.