Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

class

关键字创建一个基于原型继承的新类(译者注:ES6新加入的class关键字是语法糖,本质还是函数)

可以使用class表达式定义类class expression.

Syntax 语法

class name [extends] {
  // class body
}

Description 描述

和class表达式一样,class声明体在strict mode严格模式下运行。

Class声明不可以提升(这点和函数声明不一样)。

Examples 例子

一个类声明的例子

在下面的例子,定义了一个名为Polygon的类,然后定义了一个继承于Polygon的类 Square。注意到在构造器使用的 super(),supper()只能在构造器中使用,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';
  }
}

Specifications 规范

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Class definitions
Standard Initial definition.
ECMAScript 2017 Draft (ECMA-262)
Class definitions
Draft  

Browser compatibility 浏览器兼容性

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

See also

文档标签和贡献者

标签: 
 此页面的贡献者: MrLyp, jooyoon, webery
 最后编辑者: MrLyp,