[javascript] 객체에 동적으로 프로퍼티를 추가하는 성능 비교

JavaScript에서 객체에 동적으로 프로퍼티를 추가하는 방법은 다양합니다. 이러한 방법들의 성능을 비교해보고자 합니다.

성능 비교를 위한 테스트 환경

프로퍼티 추가 방법에 따라 성능을 비교하기 위해, 다음과 같은 테스트 코드를 사용했습니다.

const obj = {};
const propertyName = 'newProp';
const propertyValue = 123;

// 방법 1: 도트 표기법
obj[propertyName] = propertyValue;

// 방법 2: 대괄호 표기법
obj.propertyName = propertyValue;

// 방법 3: Object.defineProperty
Object.defineProperty(obj, propertyName, { value: propertyValue, writable: true, enumerable: true, configurable: true });

// 방법 4: Object.defineProperties
Object.defineProperties(obj, { [propertyName]: { value: propertyValue, writable: true, enumerable: true, configurable: true } });

테스트 결과

이러한 방법들을 성능 측면에서 비교해본 결과, 도트 표기법대괄호 표기법이 다른 방법들에 비해 성능이 우수했습니다. 특히 객체가 큰 경우에 이 차이가 더 두드러졌습니다.

이번 테스트에서는 도트 표기법대괄호 표기법의 성능 차이가 크게 나타났으며, 객체의 크기와 프로퍼티 추가 횟수에 따른 영향을 보다 상세히 조사할 필요가 있겠습니다.

결론

JavaScript에서 객체에 동적으로 프로퍼티를 추가할 때, 도트 표기법대괄호 표기법이 성능상 유리한 것으로 보입니다. 하지만, 실제 성능 차이는 객체의 크기와 프로퍼티 추가 횟수에 따라 달라질 수 있으므로 주의가 필요합니다.

참고 자료