We're looking for a person or people to help audit MDN to find places we could speed up. Is this you or someone you know? Check out the RFP: https://mzl.la/2IHcMiE

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.

A palavra chave extends é usada em uma class declarations ou class expressions para criar uma classe filha de outra classe.


class ChildClass extends ParentClass { ... }


A palavra chave extends pode ser usada para tanto classes filhas quanto objetos filhos pré-construidos.

O .prototype da extensão deve ser um Object ou null.


Usando extends

O primeiro exemplo cria uma classe chamada Square a partir de uma classe chamada Polygon. Este exemplo foi extraido deste live demo (source).

class Square extends Polygon {
  constructor(length) {
    // Here, it calls the parent class' constructor with lengths
    // provided for the Polygon's width and height
    super(length, length);
    // Note: In derived classes, super() must be called before you
    // can use 'this'. Leaving this out will cause a reference error.
    this.name = 'Square';

  get area() {
    return this.height * this.width;

  set area(value) {
    this.area = value;

Usando extends com objetos pré-construidos

Este exemplo extende o objeto pré-construido Date. Este exemplo foi extraido deste live demo (source).

class myDate extends Date {
  constructor() {

  getFormattedDate() {
    var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    return this.getDate() + "-" + months[this.getMonth()] + "-" + this.getFullYear();

Estendendo null

Estender de null funciona como em uma classe normal, exceto que o objeto prototype não herda de Object.prototype.

class nullExtends extends null {
  constructor() {}

Object.getPrototypeOf(nullExtends); // Function.prototype
Object.getPrototypeOf(nullExtends.prototype) // null


Especificação Status Comentário
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'extends' in that specification.
Padrão Definição inicial.

Compatibilidade com os navegadores

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
Suporte básico 42.0 Nightly build ? ? ?
Herança de Arrays  43.0 Não suportado ? ? ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Suporte básico Não suportado Nightly build ? ? ? 42.0
Herança de Arrays  Não suportado Não suportado ? ? ? 43.0

Ver também

Etiquetas do documento e colaboradores

 Colaboradores desta página: raduq
 Última atualização por: raduq,