We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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

class 식(expression)을 사용하여 클래스를 정의할 수도 있습니다.


class name [extends] {
  // class body


class 식에서처럼, class 선언의 class 본문(body)은 엄격 모드에서 실행됩니다.

class 선언은 (끌어올려)지지 않습니다 (function 선언과는 달리).

간단한 클래스 선언

다음 예에서, 먼저 Polygon 클래스를 정의합니다. 그 뒤에 Square 클래스를 만들기 위해 그것을 확장합니다. 생성자(constructor)에 사용된 super()는 생성자에서만 쓰일 수 있고 this 키워드가 사용되기 전에 호출되어야 함을 주의하세요.

class Polygon {
  constructor(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;

class Square extends Polygon {
  constructor(length) {
    super(length, length);
    this.name = 'Square';


스펙 상태 설명
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Class definitions' in that specification.
Standard 초기 정의.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Class definitions' in that specification.

브라우저 호환성

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 42.0 45 (45) ? ? ?
Array subclassing 43.0 No support ? ? ?
Allowed in sloppy mode 49.0        
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support 42.0 45.0 (45) ? ? ? 42.0
Array subclassing No support 43.0 No support ? ? ? 43.0
Allowed in sloppy mode No support 49.0         49.0


문서 태그 및 공헌자

이 페이지의 공헌자: Netaras
최종 변경: Netaras,