Наследование объектов
Есть вот такой код:
function Shape(centerX, centerY, color) { this.centerX = centerX; this.centerY = centerY; this.color = color; }; function Circle(centerX, centerY, color, radius) { this.base = Shape; this.base(centerX, centerY, color); this.radius = radius; }; c = new Circle(10, 20, "blue", 2); Помогите понять как это работает. Я понимаю, что когда мы вызываем конструктор Circle, то this ссылается на создаваемый объект, поэтому мне понятно откуда в объекте "c" появляются свойства base и radius, но каким образом в него попадают centerX, centerY, color? |
А такой код тебе понятен?
var circle = { setRadius: function(radius) { this.radius = radius; }, setColor: function(color) { this.color= color; } }; circle.setRadius(2); circle.setColor("blue"); Почему когда мы вызываем метод объекта, он изменяет свойство объекта? Можешь в конструкторе Circle написать function Circle(centerX, centerY, color, radius) { var circle = this; circle.setShapeProperties = Shape; circle.setShapeProperties(centerX, centerY, color); circle.radius = radius; }; Так понятнее? |
Часовой пояс GMT +3, время: 13:39. |