Clases de JavaScript (class)superPalabra clave
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 »
Otras extensiones
Clases de JavaScript (class)