>웹 프론트엔드 >JS 튜토리얼 >ES6 이상에서는 클래스 변수가 어떻게 구현됩니까?

ES6 이상에서는 클래스 변수가 어떻게 구현됩니까?

DDD
DDD원래의
2024-11-27 18:05:13584검색

How are Class Variables Implemented in ES6 and Beyond?

ES6 클래스 변수 대안

ES5에서 클래스는 일반적으로 클래스 변수를 포함하는 패턴이 있는 프레임워크를 사용하여 생성됩니다. 그러나 ES6에는 클래스 변수 생성을 위한 기본 메커니즘이 없습니다.

이를 해결하기 위해 다양한 접근 방식이 제안되었지만 완전히 만족스러운 것으로 입증된 것은 없습니다. 예를 들어 ClassConfig 핸들러를 생성하고 별도의 매개변수 객체를 전달하거나 WeakMaps를 사용하는 등을 고려했지만 제한이 있었습니다.

2018년에는 클래스 변수에 대한 3단계 제안이 도입되었습니다. 이 제안에서는 클래스 선언/표현식 내에서 다음 구문을 사용할 수 있습니다.

varName = value

이 구문은 클래스 내에서 변수를 정의합니다. 그러나 제안은 아직 개발 중이며 아직 확정되지 않았습니다.

ES 위키에 따르면 ES6 사양에 클래스 변수를 포함하지 않기로 한 결정은 의도적인 것입니다. 클래스 정의는 해당 멤버가 아닌 클래스의 기능을 선언하기 위한 것입니다. 클래스 정의에 지정된 속성에는 객체 리터럴에 나타나는 것처럼 속성이 할당됩니다.

따라서 클래스 변수를 정의하기 위해 선호되는 접근 방식은 생성자를 사용하는 것입니다.

constructor(){
    this.foo = bar
}

대안 클래스 선언과 표현식을 통해 보다 간결한 인스턴스 변수를 가능하게 하는 것을 목표로 하는 ES7에 대한 제안이 개발 중입니다. 이 제안은 아직 논의 중이며 아직 확정되지 않았습니다.

위 내용은 ES6 이상에서는 클래스 변수가 어떻게 구현됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.