ES6에서 익명 클래스를 정의하는 기능은 클래스 선언에 구문적 설탕을 제공합니다. 편리하지만 이러한 클래스를 즉시 인스턴스화하면 수많은 문제가 발생할 수 있습니다.
익명 클래스가 즉시 인스턴스화되면 JavaScript는 새로운 생성자 함수를 생성하고 프로토타입 객체를 동적으로 생성합니다. 표현식을 평가할 때마다 고유한 생성자 함수와 프로토타입이 생성됩니다.
이 방법에는 몇 가지 중요한 단점이 있습니다.
재사용성 부족:
명명된 클래스와 달리 즉시 인스턴스화되는 익명 클래스는 매번 새로운 생성자와 프로토타입을 생성합니다. 이는 여러 인스턴스가 동일한 프로토타입을 공유하지 않아 클래스 상속 및 프로토타입 공유의 이점을 잃게 됨을 의미합니다.
싱글턴 오류:
이 패턴을 사용하는 의도가 다음과 같은 것이라면 싱글톤 객체라면 실패합니다. 생성자 함수는 계속 액세스할 수 있으므로 새로운 엔터티.constructor를 사용하여 여러 인스턴스를 생성할 수 있습니다.
합의는 분명합니다. 즉각적으로 인스턴스화된 익명 클래스는 피해야 합니다. 간단한 객체 리터럴은 보다 효율적이고 간단한 대안을 제공합니다.
var entity = { name: 'Foo', getName: function() { return this.name; } };
새로운 클래스 패턴은 일부 다른 언어에서는 허용되지만 JavaScript에서는 다르게 동작합니다. . JavaScript 클래스 생성의 동적 특성으로 인해 이러한 언어가 누리는 이점이 없습니다.
위 내용은 ES6에서 즉시 인스턴스화된 익명 클래스는 나쁜 생각인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!