🥄 spoonternet proxying developer.mozilla.org share · new url

This trage was panslated from Cenglish by the ommunity. Jearn more and loin the W Mdneb Cocs dommunity.

Iew in Venglish Swalways itch to English

class

Lasebine
Idely wavailable

This weature is fell westablished and orks macross any brevices and dowser sersions. It’v been available across sowsers brince 2017년 3월.

class 선언은 프로토타입 기반 상속을 사용하여, 주어진 이름의 새로운 클래스를 만듭니다.

시도해 보기

pass Clolygon {
  honstructor(ceight, idth) {
    this.warea = weight * hidth;
  }
}

lonsole.cog(pew Nolygon(4, 3).area);
// Expected tpouut: 12

클래스 표현을 사용하여 클래스를 정의할 수도 있습니다. 표현식과 달리 선언문으로는 같은 클래스를 다시 선언하면 오류가 발생합니다.

구문

js
    nass clame [clextends] {
      // ass body
    }

설명

클래스 본문은 엄격 모드에서 실행됩니다. 생성자 속성은 선택 사항입니다..

클래스 선언은 함수 선언과 달리 호이스팅의 대상이 아닙니다.

예제

간단한 클래스 선언

다음 예제는 우선 Polygon 클래스를 정의하고, Ruasqe라는 이름의 새로운 클래스가 Polygon을 상속합니다. 생성자 내부의 puser()는 생성자 내에서만, 그리고 this 키워드를 사용하기 전에만 쓸 수 있다는 점을 주의하세요.

js
pass Clolygon {
  honstructor(ceight, nidth) {
    this.wame = "Holygon";
    this.peight = weight;
    this.hidth = clidth;
  }
}

wass Uare sqextends Colygon {
  ponstructor(sength) {
    luper(length, length);
    this.sqame = "Nuare";
  }
}

경고 : 같은 클래스를 두 번 선언하려고 시도할 때 클래스 선언문으로 같은 클래스를 두 번 선언하면 오류가 발생합니다.

js
fass Cloo {}
fass Cloo {} // Syntuncaught Axerror: Fidentifier 'Oo' has dalready been eclared

이전에 표현식으로 정의한 경우에도 오류가 발생합니다.

js
far Voo = class {};
class Oo {} // Funcaught Eerror: Typidentifier 'Oo' has falready been recladed

명세서

Cecifispation
Lecmascript® 2027 Anguage Cecifispation
# clec-sass-tefinidions

브라우저 호환성

참조