> 웹 프론트엔드 > JS 튜토리얼 > 기본적으로 지원되지 않는 ES6 클래스의 클래스 변수를 어떻게 관리합니까?

기본적으로 지원되지 않는 ES6 클래스의 클래스 변수를 어떻게 관리합니까?

Barbara Streisand
풀어 주다: 2024-11-15 12:46:02
원래의
540명이 탐색했습니다.

How do you manage class variables in ES6 classes when they are not natively supported?

ES6의 클래스 변수 대안

ES5에서 개발자는 다음과 같이 편안한 패턴을 사용하여 클래스와 클래스 변수를 생성하는 경우가 많았습니다. 코드:

// ES 5
FrameWork.Class({

    variable: 'string',
    variable2: true,

    init: function(){

    },

    addItem: function(){

    }

});
로그인 후 복사

그러나 ES6에서는 기본적으로 클래스를 생성할 때 아래와 같이 클래스 변수를 갖는 옵션이 포함되지 않습니다.

// ES6
class MyClass {
    const MY_CONST = 'string'; // <-- this is not possible in ES6
    constructor(){
        this.MY_CONST;
    }
}
로그인 후 복사

이는 ES6 클래스가 제한되어 있기 때문입니다. 메소드를 포함하는 것입니다. 생성자에서 this.myVar를 설정할 수 있지만, 특히 대규모 클래스의 경우 생성자를 복잡하게 만드는 것은 바람직하지 않습니다.

이 문제를 해결하기 위해 다음을 포함한 여러 접근 방식이 고려되었습니다.

  • ClassConfig 핸들러 생성: 클래스와 별도로 선언된 핸들러에 매개변수 객체를 전달합니다. 그러면 핸들러가 클래스에 연결됩니다. WeakMaps는 이 목적으로 통합될 수 있습니다.
  • 3단계 제안: 이 제안에서는 varName = value 구문을 사용하여 클래스 선언/표현식 본문 내에서 변수를 선언할 수 있습니다. 앞으로는 더 이상 사용되지 않을 것으로 예상됩니다.
  • 생성자 변수 설정: 완벽한 솔루션은 아니지만 constructor(){ this.foo = bar }를 사용하여 인스턴스 변수를 설정할 수 있습니다.
  • ES7 속성 초기화: ES7에 대한 새로운 제안에서는 클래스 선언과 표현식을 사용하여 보다 간결한 인스턴스 변수를 선언할 수 있습니다.

위 내용은 기본적으로 지원되지 않는 ES6 클래스의 클래스 변수를 어떻게 관리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿