Clases de JavaScript (class)superPalabra clave

JavaScript 类(class)Clases de JavaScript (class)


Ejemplo

Ejemplo

El siguiente ejemplo crea la clase "Ejemplo" y usa super para llamar al constructor de la clase padre "Site":

class Site { constructor(name) { this.sitename = name; } present() { return 'Me gusta' + this.sitename; } } class Ejemplo extends Site { constructor(name, age) { super(name); this.age = age; } show() { return this.present() + ', se creó en' + this.age + 'año.'; } } let noob = new Ejemplo("Tutorial para novatos", 5); document.getElementById("demo").innerHTML = noob.show();

Pruébalo »


Definición y uso

La palabra clave super se utiliza para acceder y llamar a funciones en el objeto padre de un objeto.

Cuando se usa en un constructor, la palabra clave super aparece sola y debe usarse antes de la palabra clave this. La palabra clave super también se puede usar para llamar a funciones en el objeto padre.

Sintaxis

super(arguments);  // 调用父构造函数
  super.parentMethod(arguments);  // 调用父方法
  

Detalles técnicos

Versión de JavaScript: ECMAScript 2015 (ES6)

Compatibilidad con navegadores

super es una característica de ECMAScript6 (ES6).

Actualmente todos los navegadores principales admiten ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Yes Yes Yes Yes Yes

Internet Explorer 11 o versiones anteriores de IE no admiten la palabra clave super.


Más ejemplos

Uso de super en una clase:

Ejemplo

class Polygon { constructor(height, width) { this.name = 'Rectangle'; this.height = height; this.width = width; } sayName() { return 'Hi, I am a ' + this.name + '.'; } get area() { return this.height * this.width; } set area(value) { this._area = value; } } class Square extends Polygon { constructor(length) { //Aquí, llama al constructor de la clase padre, //como height, width de Polygon super(length, length); this.height; //necesitan estar después de super, de lo contrario se produce un ReferenceError. //Nota: En una clase derivada, debes llamar a super() antes de poder usar 'this'. //Ignorar esto causará un error de referencia. this.name = 'Square'; } }

Pruébalo »

Llamar a métodos estáticos de la clase padre con super:

Ejemplo

class Rectangle { constructor() {} static logNbSides() { return 'I have 4 sides'; } } class Square extends Rectangle { constructor() {} static logDescription() { return super.logNbSides() + ' which are all equal'; } } Square.logDescription(); // 'I have 4 sides which are all equal'

Pruébalo »

JavaScript 类(class)Clases de JavaScript (class)

Otras extensiones