Трудно сказать, какова ваша настоящая проблема, не глядя на код, который на самом деле создает GuiObject
, но для того, чтобы он того стоил, вот лучший способ написать этот «класс».
function GuiObject() {
this.x = 0;
this.y = 0;
this.width = 0;
this.height = 0;
this.parent = null;
this.children = [];
}
GuiObject.prototype.getWidth = function()
{
return this.width;
};
GuiObject.prototype.getHeight = function()
{
return this.height;
};
GuiObject.prototype.paint = function(ctx)
{
};
Делая это таким образом, каждый экземпляр может использовать одни и те же методы.С другой стороны, вы будете создавать новые функциональные объекты для каждого созданного вами экземпляра.Единственная причина когда-либо определять методы в конструкторе вместо того, чтобы прикреплять их к прототипам, заключается в том, что им нужен доступ к закрытым членам, которые никогда не присоединяются к this
.