@Petroveg Давайте исходить из классического определения ООП, как в школе учили — инкапсуляция, полиморфизм и наследование.
* Инкапсуляция (не путаем со сокрытием данных) — то есть объединение данных и операций на ними есть? Есть. (Сокрытие данных, впрочем, тоже можно эмулировать.)
* Полиморфизм — в силу динамической типизации есть.
* Наследование — любой объект имеет скрытое поле [[prototype]], которое ссылается на некий другой объект. Если при запросе некоторого свойства оно не находится в данном объекте, то оно ищется у объекта, прописанного в [[prototype]]. Есть.
Ну и если все-таки перебороть противоестественное отвращение к гуглению и википедии, то увидим, что в объектно-ориентированной парадигме манипулируют объектами и классами или прототипами.
@Petroveg ООП в JS есть, и практика показывает, что именно ооп является более понятным и простым способом повторного использования кода, несмотря на успехи фп.
Работа с HTML, все эти события и пр. — банальщина. Замыкания — да.
Не путайте наличие в языке классов и ооп — бесит неимоверно.
@nable Linux, по сути, и есть ядро. Да, у всех оно одно и то же, с поправкой на версию, и, может быть изредка, набором наложенных патчей. Да, поменять ядро пользователь может самостоятельно, насчет количества времени — все зависит:)
* Инкапсуляция (не путаем со сокрытием данных) — то есть объединение данных и операций на ними есть? Есть. (Сокрытие данных, впрочем, тоже можно эмулировать.)
* Полиморфизм — в силу динамической типизации есть.
* Наследование — любой объект имеет скрытое поле [[prototype]], которое ссылается на некий другой объект. Если при запросе некоторого свойства оно не находится в данном объекте, то оно ищется у объекта, прописанного в [[prototype]]. Есть.
Ну и если все-таки перебороть противоестественное отвращение к гуглению и википедии, то увидим, что в объектно-ориентированной парадигме манипулируют объектами и классами или прототипами.