Написать функцию-конструктор для объекта-бегуна. Написать статический метод для награждения бегуна. При каждом награждении описание медали добавляется в статическую переменную класса, а id медали сохраняется в массиве medals объекта. При награждении медалью, которой нет в статической переменной, она создается и ей назначается id.
var Runner = function() { this.medals = []; }; var runner1 = new Runner; var runner2 = new Runner; Runner.giveMedal(runner1, 'Gold, 1000 m'); Runner.giveMedal(runner1, 'Silver, 500 m'); Runner.giveMedal(runner1, 'Gold, 1000 m'); console.log(runner1.medals); // 1,2,1 Runner.giveMedal(runner2, 'Silver, 500 m'); Runner.giveMedal(runner2, 'Silver, 800 m'); console.log(runner2.medals); // 2,3
Написать функцию-конструктор Car, создающую объект-автомобиль заданной марки с 4 колесами . Добавить фабричные методы для добавления трёх- и восьмиколесных автомобилей.
>var Car = function(brand) { this.brand = brand; this.wheels = 4; };
Написать функцию-конструктор, которая создает объект-бегуна с полями "имя" и "медали". Написать ещё одну функцию-конструктор, создающую объект-игрока в лотерею с полями "количество купленных билетов", "количество выигранных денег". Добавить игроку метод для выдачи ему денежного приза . Использовать данный метод для выдачи денежного приза бегуну, используя call.
Создать псевдо-массив Arr длинной 5, заполенный произвольными целыми числами от 10 до 99, и методом sort, сортирующим Arr по возрастанию остатков от деления на 10 его элеметов. С помощью одалживания метода sort отсортировать элементы по убыванию. Одалживать метод под тем же именем и на время одалживания сохранить имеющийся метод. После сортировки вернуть sort сохраненный метод.
Добавить декоратор для метода Math.max, который, в случае, если какие-то из элементов строки, заменял их на длину этих строк; если какие-то из элементов объекты - возвращает первое найденное числовое свойство или 0.
Math.max( 1, 2, 'abc', {a: 2, b: 4} ); // 3