//Объявление класса прямоугольника function Rectangle(x, y, w, h) { /*Функции для работы с координатами * основного прямоугольника */ function chkVal(val) { var a = parseFloat(val); return (isNaN(a) || a < 0) ? 0 : a; } this.X = function (val) { if (val === undefined) return x; x = chkVal(val); }; this.Y = function (val) { if (val === undefined) return y; y = chkVal(val); }; this.W = function (val) { if (val === undefined) return w; w = chkVal(val); }; this.H = function (val) { if (val === undefined) return h; h = chkVal(val); }; //Функция изменения начальной координаты и размеров прямоугольника this.RectParam = function (_x, _y, _w, _h) { this.X(_x); this.Y(_y); this.W(_w); this.H(_h); }; //Функция изменения прямоугольника по другому прямоугольнику this.Rect = function (val) { if (val === undefined) return this; this.RectParam(val.X(), val.Y(), val.W(), val.H()); }; //Первая инициализация if (x === undefined) x = 0; else this.X(x); if (y === undefined) y = 0; else this.Y(y); if (w === undefined) w = 0; else this.W(w); if (h === undefined) h = 0; else this.H(h); }