А такой код тебе понятен?
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;
};
Так понятнее?