Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Наследование объектов (https://javascript.ru/forum/misc/39327-nasledovanie-obektov.html)

_DR_ 25.06.2013 17:45

Наследование объектов
 
Есть вот такой код:

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?

danik.js 25.06.2013 20:05

А такой код тебе понятен?

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:33.