Линия
WFLYSRV0220: Server shutdown has been requested via an OS signal
сообщает, что вы получаете сигнал выключения с сервера. См. Также https://developer.jboss.org/wiki/MysteriousShutdowns . Предполагается, что вы используете опцию Java -Xrs
, чтобы получать меньше сигналов.
Технически утверждение «JavaScript не имеет классов» верное.
Хотя JavaScript является объектно-ориентированным языком, это не язык на основе классов - это язык, основанный на прототипах . Между этими двумя подходами есть различия, но поскольку можно использовать JavaScript как язык, основанный на классах, многие люди (включая меня) часто просто называют функции конструктора «классами».
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
// Getter
get area() {
return this.calcArea();
}
// Method
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area); // 100
AFAIK Javascript использует концепцию прототипа, а не объектно ориентированный объект. Это означает, что вы не можете использовать типичные концепции ООП, такие как наследование или полиморфизм.
Послушайте выступление Дугласа Крокфорда здесь:
http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-2
Он прямо отвечает на ваш вопрос в своей презентации:
Самая спорная особенность языка - это способ наследования, который радикально отличается от практически всех других современных языков. В большинстве языков используются классы - я называю их «классическими языками», а в JavaScript - нет. JavaScript не требует классов. Используются прототипы. Люди с классической подготовкой, которые смотрят на язык, говорят: ну, этого недостаточно. У вас нет занятий, как вы можете что-то сделать? Как вы можете быть уверены, что структура вашей программы будет работать? И они никогда этого не преодолеют. Но оказывается…
В Javascript практически все является объектом
(объекты могут наследоваться от других объектов). В нем нет классов
в классическом смысле.
Хотя вы можете воспроизвести большую часть функциональности традиционного определения/инстанцирования классов с помощью прототипирования функций.
Под словами "язык X имеет классы" люди обычно подразумевают поддержку объектно-ориентированного программирования.
Да, Javascript является объектно-ориентированным языком.