class

2 位贡献者:
我们的志愿者还没有将这篇文章翻译为 中文 (简体) 。加入我们帮助完成翻译!

This is a new technology, part of the ECMAScript 2015 (ES6) standard .
This technology's specification has been finalized, but check the compatibility table for usage and implementation status in various browsers.

The class declaration creates a new class with a given name using prototype-based inheritance.

You can also define a class using a class expression.

Syntax

class name [extends] {
  // class body
}

Description

Just like with class expressions, the class body of a class declaration is executed in strict mode.

Class declarations are not hoisted (unlike function declarations).

Examples

A simple class declaration

In the following example, we first define a class named Polygon, then extend it to create a class named Square. Note that super(), used in the constructor, can only be used in constructors and must be called before the this keyword can be used.

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';
  }
}

Specifications

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Class definitions' in that specification.
Standard Initial definition.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 42.0 Nightly build ? ? ?
Array subclassing 43.0 Not supported ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support Not supported 42.0 Nightly build ? ? ? 42.0
Array subclassing Not supported 43.0 Not supported ? ? ? 43.0

See also

文档标签和贡献者

向此页面作出贡献: fscholz, jpmedley
最后编辑者: fscholz,
隐藏侧边栏