1

сразу попрошу меня не ругать, пару дней, как перешёл на JS с C#. Много не понимаю, столкнулся с проблемой следующего рода, приложу код:

var verX = prompt("Введите координаты X вершин прямоугольника");
var verY = prompt("Введите координаты Y вершин прямоугольника");
verX = verX.split(',');
verY = verY.split(',');
var x1 = +verX[0],
  x2 = +verX[1],
  x3 = +verX[2],
  x4 = +verX[3],
  y1 = +verY[0],
  y2 = +verY[1],
  y3 = +verY[2],
  y4 = +verY[3];

let rec = new Rectangle(x1, y1, x2, y2, x3, y3, x4, y4); rec.GetXpos(); rec.GetYpos(); document.write("<br />" + "Площадь прямоугольника= " + rec.GetSquare()); rec.GetAngle(); class Rectangle { constructor(x1, y1, x2, y2, x3, y3, x4, y4) { this.y1 = y1; this.x1 = x1; this.y2 = y2; this.x2 = x2; this.y3 = y3; this.x3 = x3; this.y4 = y4; this.x4 = x4; } GetSquare() { var s = 0; s = (this.x2 - this.x1) * (this.y3 - this.y1) return s; } GetXpos() { document.write('<br/>' + "Координаты Х вершин прямоугольника: " + this.x1, "", this.x2, " ", this.x3, " ", this.x4); }

GetYpos() { document.write('<br/>' + "Координаты У вершин прямоугольника: " + this.y1, "", this.y2, " ", this.y3, " ", this.y4); } GetAngle() { document.write('<br />' + "Угол прямоугольника равен: " + 90); }

}

Я думаю опытные( и не только) сразу поймут в чём моя ошибка и проблема. А проблема в данной строке: let rec=new Rectangle(x1,y1,x2,y2,x3,y3,x4,y4);

Uncaught ReferenceError: Rectangle is not defined,

Подскажите, как правильно передавать данные?)

Grundy
  • 81,538
Valera
  • 191
  • "А проблема в данной строке" -?? –  Jan 14 '19 at 16:01
  • Uncaught ReferenceError: Rectangle is not defined, я так понимаю, что я неправильно передаю данные. Или я что-то не так сейчас написал?( – Valera Jan 14 '19 at 16:03

1 Answers1

0

Определения классов, в отличие от функций, не "всплывают".

class Rectangle {
  constructor(x1, y1, x2, y2, x3, y3, x4, y4) {
    this.y1 = y1;
    this.x1 = x1;
    this.y2 = y2;
    this.x2 = x2;
    this.y3 = y3;
    this.x3 = x3;
    this.y4 = y4;
    this.x4 = x4;
  }
  GetSquare() {
    var s = 0;
    s = (this.x2 - this.x1) * (this.y3 - this.y1)
    return s;
  }
  GetXpos() {
    document.write('<br/>' + "Координаты Х вершин прямоугольника: " + this.x1, " ", this.x2, " ", this.x3, " ", this.x4);
  }

GetYpos() { document.write('<br/>' + "Координаты У вершин прямоугольника: " + this.y1, " ", this.y2, " ", this.y3, " ", this.y4); } GetAngle() { document.write('<br />' + "Угол прямоугольника равен: " + 90); } }

var verX = "1,2,3,4"; //prompt("Введите координаты X вершин прямоугольника"); var verY = "1,2,3,4"; //prompt("Введите координаты Y вершин прямоугольника"); var verX = verX.split(','); var verY = verY.split(','); var x1 = +verX[0], x2 = +verX[1], x3 = +verX[2], x4 = +verX[3], y1 = +verY[0], y2 = +verY[1], y3 = +verY[2], y4 = +verY[3];

let rec = new Rectangle(x1, y1, x2, y2, x3, y3, x4, y4); rec.GetXpos(); rec.GetYpos(); document.write("<br />" + "Площадь прямоугольника= " + rec.GetSquare()); rec.GetAngle();