[javascript] 동적으로 생성된 프로퍼티와 정적으로 정의된 프로퍼티의 속성 비교

프로그래밍에서 동적으로 생성된 프로퍼티와 정적으로 정의된 프로퍼티는 서로 다른 특성을 가지고 있습니다. 이 포스트에서는 이 두 가지 유형의 프로퍼티의 속성을 비교하고 각각의 특징에 대해 알아보겠습니다.

동적으로 생성된 프로퍼티

동적으로 생성된 프로퍼티는 객체에 런타임 중에 추가되는 프로퍼티입니다. 이러한 프로퍼티는 객체에 존재하지 않았던 임의의 프로퍼티이며, . 또는 []를 사용하여 객체에 프로퍼티를 추가할 수 있습니다.

const obj = {};
obj.dynamicProp = 'I am a dynamic property';

동적으로 생성된 프로퍼티는 객체에 추가된 후에도 동적으로 수정이 가능하며, 삭제할 수도 있습니다.

obj.dynamicProp = 'Updated value'; // 수정
delete obj.dynamicProp; // 삭제

정적으로 정의된 프로퍼티

정적으로 정의된 프로퍼티는 객체가 생성될 때 프로토타입 또는 클래스의 정의 내에서 명시적으로 정의된 프로퍼티입니다.

class MyClass {
  static staticProp = 'I am a static property';
}

이러한 프로퍼티는 클래스의 정의에 직접 포함되기 때문에 런타임에 수정되거나 삭제할 수 없습니다.

속성 비교

동적으로 생성된 프로퍼티와 정적으로 정의된 프로퍼티의 주요 차이점은 다음과 같습니다:

결론

동적으로 생성된 프로퍼티는 런타임 중에 유연하게 추가 및 수정이 가능하므로 필요에 따라 유연하게 활용할 수 있습니다. 정적으로 정의된 프로퍼티는 클래스나 프로토타입의 일부로서 고정되어 있으며, 변경이 불가능하므로 안정성을 제공합니다. 개발자는 이러한 차이점을 이해하고 상황에 맞게 적절히 활용할 수 있어야 합니다.

이상으로 동적으로 생성된 프로퍼티와 정적으로 정의된 프로퍼티의 속성에 대한 비교를 마치도록 하겠습니다.

참고문헌: