klasyczne dziedziczenie a dziedziczenie prototypowe w javascript

Poszukałem tak wielu linków i nie mam pojęcia o różnicy między klasycznym dziedziczeniem a dziedziczeniem prototypowym?

Nauczyłem się od nich kilku rzeczy, ale wciąż nie rozumiem pojęć.

Zalety prototypowego dziedziczenia nad klasycznym?

http://aaditmshah.github.io/why-prototypal-inheritance-matters/

Klasyczne dziedzictwo

// Shape - superclass
function Shape() {
  this.x = 0;
  this.y = 0;
}

//superclass method
Shape.prototype.move = function(x, y) {
    this.x += x;
    this.y += y;
    console.info("Shape moved.");
};

// Rectangle - subclass
function Rectangle() {
  Shape.call(this); //call super constructor.
}

//subclass extends superclass
Rectangle.prototype = Object.create(Shape.prototype);

Czy klasyczne dziedziczenie używa prototypowego dziedziczenia wewnątrz?

http://aaditmshah.github.io/why-prototypal-inheritance-matters/

Z powyższego linku dowiedziałem sięnie możemy dodawać nowych metod w czasie wykonywania w klasycznym dziedziczeniu. Czy to jest poprawne? Ale możesz sprawdzić powyższy kodMogę dodać metodę „move” i wszelkie metody w czasie wykonywania przez prototyp. Więc to jest klasyczne dziedziczenie oparte na prototypach? Jeśli tak, jakie jest rzeczywiste dziedziczenie klasycznego dziedziczenia i prototypu? Jestem tym zdezorientowany.

Dziedziczenie prototypowe.

function Circle(radius) {
    this.radius = radius;
}
Circle.prototype.area = function () {
    var radius = this.radius;
    return Math.PI * radius * radius;
};
Circle.prototype.circumference: function () {
    return 2 * Math.PI * this.radius;
};
var circle = new Circle(5);
var circle2 = new Circle(10);

Czy jest to podobne do klasycznego dziedziczenia? Jestem całkowicie zdezorientowany, co to jest dziedziczenie prototypowe? Czym jest klasyczne dziedziczenie? Dlaczego klasyczne dziedziczenie jest złe?

Czy możesz dać mi prosty przykład na lepsze zrozumienie ich w prosty sposób.

Dzięki,

Śiwa

questionAnswers(2)

yourAnswerToTheQuestion