Soy nuevo en JavaScript y en la programación basada en prototipos. Sé que puede definir clases heredadas como class Circle extends Shape {} , pero class es principalmente un azúcar sintáctico de funciones de constructor, entonces, ¿hay algún equivalente para la herencia de funciones en JavaScript?
En otras palabras, ¿cómo puedo definir una función heredada sin palabra clave de class , como esta:
var Shape = function() { this.getColor = function() {alert('Some color!')}; }; //Something like this: var Circle = Function.create(Shape); var circle1 = new Circle; //With all below conditions: console.log(Circle.__proto__ == Shape) // true console.log(Circle.prototype.__proto__ == Shape.prototype) // true console.log(circle1 instanceof Shape) // true console.log(Object.getOwnPropertyNames(circle1)) // Array [ "getColor" ] He buscado en algunos artículos, pero la última condición no se logró en ellos y getColor era una propiedad heredada, en lugar de ser un miembro del propio circle1 .