Объекты, функции и «классы»

Объекты и оператор new

В JavaScript все состоит из объектов (как в нашем мире). Переменная – объект, функция – тоже объект! Мы даже можем записывать функции в переменные.

Создание объекта с помощью оператора new

В предыдущем уроке мы создавали окно (создали объект)
Спойлер Скриншот:


Оператор new создает новый объект, используя функцию-конструктор (функция initialize), которая может быть как встроенной в javascript (Date, String), так и определенной пользователем.

Когда наш плагин будет выполнять эту строчку, то оператор new создаст окно (объект), вызвав функцию initialize (передав параметры x, y, width, height) и объект запишется в переменную.

Функция initialize окна Window_Base
Спойлер Скриншот:


Оператор new всегда вызывает первой функцию initialize у создаваемого объекта.

У окна Window_Base явно определена функция initialize, но можно и не определять ее.
Спойлер Скриншот:


В данном случае функция func сама по себе является initialize. Также можно заметить, что без оператора new значение переменной a неопределенно.


Договоримся о понятиях
В JavaScript нет понятия класс, но мы будем использовать его для обозначения сцен, окон, спрайтов и т.д.
Что такое класс? Класс – коробка. Коробка, в которую мы можем положить вещи (какие-то данные), также мы можем производить различные действия с коробкой (открыть, посмотреть и т.д.) – это функции.
Итак, класс – это набор данных и функций для взаимодействия с этими данными.