Наследование объектов
Есть вот такой код:
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, время: 22:46. |