"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > ES6에서 즉시 인스턴스화된 익명 클래스는 나쁜 생각인가요?

ES6에서 즉시 인스턴스화된 익명 클래스는 나쁜 생각인가요?

2024-11-09에 게시됨
검색:733

Are Immediately Instantiated Anonymous Classes in ES6 a Bad Idea?

즉시 인스턴스화된 익명 클래스: 재난에 대한 처방

ES6에서 익명 클래스를 정의하는 기능은 클래스 선언에 대한 구문적 설탕을 제공합니다. 편리하지만 이러한 클래스를 즉시 인스턴스화하면 수많은 문제가 발생할 수 있습니다.

무대 뒤에서 무슨 일이 발생합니까?

익명 클래스가 즉시 인스턴스화되면 JavaScript는 새로운 생성자 함수를 생성하고 프로토타입 객체를 동적으로 생성합니다. 표현식을 평가할 때마다 고유한 생성자 함수와 프로토타입이 생성됩니다.

즉시 인스턴스화의 단점

이 방법에는 몇 가지 중요한 단점이 있습니다.

재사용성 부족:
명명된 클래스와 달리 즉시 인스턴스화되는 익명 클래스는 매번 새로운 생성자와 프로토타입을 생성합니다. 이는 여러 인스턴스가 동일한 프로토타입을 공유하지 않음을 의미하며 클래스 상속 및 프로토타입 공유의 이점을 잃습니다.

싱글턴 오류:
이 패턴을 사용하는 의도가 다음을 생성하는 것이라면 싱글톤 객체라면 실패합니다. 생성자 함수는 계속 액세스할 수 있으므로 새 엔터티.constructor를 사용하여 여러 인스턴스를 생성할 수 있습니다.

무슨 일이 있어도 피하세요

합의는 분명합니다. 즉시 인스턴스화되는 익명 클래스는 피해야 합니다. 간단한 객체 리터럴은 보다 효율적이고 간단한 대안을 제공합니다.

var entity = {
  name: 'Foo',
  getName: function() { return this.name; }
};

주의 사항: 언어 간 고려 사항

새 클래스 패턴은 일부 다른 언어에서는 허용되지만 JavaScript에서는 다르게 동작합니다. JavaScript 클래스 생성의 동적 특성으로 인해 이러한 언어가 누리는 이점이 없습니다.

릴리스 선언문 이 글은 1729392316에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3