>

이런 진술이 있습니다.

let Polygon = class{
  constructor(){
    //stuff
  }
  
  draw(){
    //more stuff
  }
}

이 클래스를 다음과 같이 확장하고 싶습니다 :

class Board extends Polygon{
  constructor(){
    //stuff
  }
}

그러나 Polygon과 같은 변수로 저장하고 싶습니다. 이것을 사용하여 :

let Board = class extends Polygon{
}

작동하지 않습니다. 다각형에서와 같이 어떻게 저장합니까?


  • 답변 # 1

    잘 작동합니다 (그러나 계속 읽습니다) :

    let Polygon = class{
      constructor(){
        //stuff
      }
      
      draw(){
        //more stuff
      }
    };
    let Board = class extends Polygon {
    };
    console.log(typeof Board);
    
    

    ...하지만주의하십시오

    let Board = class extends Polygon {
    };
    
    

    그리고

    class Board extends Polygon {
    }
    
    

    같은 것을정확하게하십시오. 둘 다 :

    Board 라는 가변 변수 만들기  위의 범위로 진입 할 때 최신 식별자 범위 지정 및 의미론 (예 : Temporal Dead Zone 등)을 사용하는 현재 실행 컨텍스트에서. 와이즈 비즈 letconst  모두 최신 식별자 의미를 사용합니다. (와이즈 와이즈)  레거시 범위 지정 및 의미 체계를 사용합니다.)

    class 에 의해 생성 된 생성자로 변수를 초기화하십시오.   var 생성자 , 코드의 단계별 실행에서 해당 설명/선언에 도달하면

    (반대, class  식별자 바인딩을 변경할 수 없게 만듭니다.)

    Board

관련 자료

  • 이전 c# - systemlinq - 다음 메소드 또는 특성간에 호출이 모호합니다
  • 다음 javascript - 내가 만든 API에서 데이터를 가져 오는 HTML 페이지에 데이터를 동적으로 표시