ES6 이전에는 객체를 생성할 때 키를 동적으로 설정할 수 없었다. 즉, 객체를 생성하고 나서 키를 설정해야 했다.
const field = 'name';
const value = 'tom'
const user = {
field : value
}
console.log(user) // { field: 'tom' }
해당 코드에서 콘솔 로그를 확인해 보면 value 값은 지정해 준 “tom”이 잘 반영된 것을 확인할 수 있지만 field를 ‘name’으로 지정해줬는데도 user객체의 key가 field로 되어 있는 것을 확인할 수 있다. value는 함수, string, 변수도 사용할 수 있지만 key는 이런 처리가 허용되지 않는다.
아래 방법의 문제점은 객체 키를 동적으로 설정할 수 없다는 것이다.
objectName.propertKey = value;
// user라는 객체 생성
const user = {};
user.name = "tommy";
console.log(user) // { name: 'tommy' }
objectName['propertyName'] = propertyValue;
const user = {};
const key = 'name'
user[key] = 'tom';
console.log(user); // { name: 'tom' }
[ ]
방식으로 프로퍼티를 설정하면 키 값을 동적으로 설정할 수 있다.const key = 'name';
const value = 'tommy';
const user = {
[key]: value
};
console.log(user); // { name: 'tommy' }
[ ]
대괄호를 사용하면 된다.setInputs({
...inputs,
[name]: value
});