Prendiamo il seguente esempio di ereditarietà in javascript:
var Employee = function(name, salary) {
Person.call(this, name);
this.name = name;
this.salary = salary;
}
Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee;
Employee.prototype.doWork = function() {
alert('working!');
}
Che ne dici di creare una classe e una super funzione in modo da poter riscrivere il codice precedente in questo modo:
var Employee = Class({
extends: Person
constructor: function(name, salary) {
super(name);
this.salary = salary;
}
doWork: function() {
alert('working!');
}
});
L'utilizzo sarebbe più o meno analogo alla classe ECMAScript 6:
class Employee extends Person {
constructor(name, salary) {
super(name);
this.salary = salary;
}
doWork() {
alert('working!');
}
}
Ci vuole ancora un po 'di tempo prima che ogni browser esegua ECMAScript 6, quindi perché non usare tale stenografia per le dichiarazioni di classe? Questo avrebbe dei veri inconvenienti? Ci sono librerie che fanno questo?