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

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

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

Sintaxe

class ChildClass extends ParentClass { ... }

Descrição

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.

Exemplos

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() {
    super();
  }

  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ções

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: SphinxKnight, raduq
Última atualização por: SphinxKnight,