JavaScript конструкторы, прототипное наследование, методы встроенных объектов — темы, которые требуются при устройстве на работу или свободной практике. При первом знакомстве с JS, если раньше не занимались программированием, на выполнение задач в JavaScript связанных с объектами придется затратить больше времени, чем на предыдущие задания. Как обычно нам помогут книги по JS, методические пособия с курса, группа поддержки выпускников в vk.com. Если есть некоторая растерянность в работе, отложите текущие задачи и поиграйте в CodeCombat или FightCode 🙂
JavaScript конструкторы и объекты
- Создайте конструктор
function Card(from, to){...}
, создающий объекты карточки со свойствамиfrom
,to
и методомshow()
, возвращающим свойства отдельного объекта в виде строки «from,to», где на месте названий свойств будут их значения. Создайте переменную c1 с городами Екатеринбург и Москва - Опишите класс Human: для создания объектов со свойствами name, age и height конструктор класса должен принимать одноимённые аргументы . Создайте массив humans из десяти объектов:
«Коля», 23, 180,
«Даша», 19, 170,
«Ваня», 18, 192,
«Петя», 45, 178,
«Вася», 34, 197,
«Джони», 40, 168,
«Катя», 37, 160,
«Петя», 29, 200,
«Соня», 21, 172,
«Женя», 25, 175
Укажите классу метод getInfo (он должен возвращать строки вида «Коля, 23, 180»), метод геттер firstname ( он должен возвращать свойство name объекта) - (*) Напишите функции сортировки sortByName и sortByHeight, которые смогут отсортировать массив по именам (в алфавитном порядке) или росту (по убыванию роста). Вызовите только функцию сортировки по росту.
- Получите в переменную dt1 дату соответствующую 0:00, 1 января 2045 года, при помощи конструктора Date()
- В переменную dt2 найдите кол-во секунд, которое прошло с 1 января 1970 года по текущий момент.
- Напишите функцию getDays, которая принимает год и месяц (пусть январь будет — 1, февраль — 2 и т.д.), а возвращает количество дней в месяце
- (*) Напишите функцию calendar(year,month), которая принимает два параметра — номер месяца и год, а возвращает разметку календаря HTML на указанный месяц.
- (*) Через прототип расширьте встроенный объект Number методом isOdd(), который возвращает true, если число нечетное.
- (*) Создайте конструктор , который поддерживает на своих методах цепочечный синтаксис.
- (*) Представьте, что разрабатываете игру. Создайте конструктор Unit(), создающий объекты с координатами x, y. При помощи прототипного наследования расширьте Unit(), создав новый конструктор Fighter() с свойством power. Примечание: не забудьте о геттерах и сеттерах.
Посмотреть другие задания по JavaScript