最佳答案
我谷歌了这么多链接,却不能很好地理解经典继承和原型继承之间的区别?
我已经从中学到了一些东西,但我仍然对这些概念感到困惑。
古典遗传
// 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);
经典继承在内部使用原型继承吗?
Http://aaditmshah.github.io/why-prototypal-inheritance-matters/
从上面的链接,我学习了 我们不能在运行时在经典继承中添加新方法。是这样吗?但是你可以检查上面的代码 我可以通过原型在运行时添加“ move”方法和任何方法。这就是基于原型的经典继承?如果是这样,那么实际的经典继承和原型继承又是什么呢?我对此很困惑。
原型继承。
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);
这是否类似于古典遗传?我完全搞不懂什么是原型继承?什么是古典遗传?为什么经典继承不好?
你能给我一个简单的例子,更好地理解这些在一个简单的方式。
谢谢,
湿婆