Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
 Аватар для aleksskay4
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 891
Записей в блоге: 1

Для начала вам необходимо создать класс Developer, конструктор которого будет принимать 3 параметра: fullName. Имя разра

02.08.2021, 14:28. Показов 5761. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ваша компания создает внутренний продукт для облегчения контроля за ростом своих разработчиков. Вам поручили задачу реализовать такой продукт.

Для начала вам необходимо создать класс Developer, конструктор которого будет принимать 3 параметра:
  • fullName. Имя разработчика.
  • age. Возраст разработчика.
  • position. Текущая позиция разработчика в компании (например, Junior, Middle, Senior).
Инициализируйте все параметры при помощи this. Также создайте внутри конструктора поле technologies, которое по умолчанию будет равно пустому массиву.
Кроме этого в классе Developer вам необходимо создать 2 метода:
  • code. Метод, у которого тело изначально пустое (в фигурных скобках ничего нет).
  • learnNewTechnology. Данный метод принимает в себя 1 параметр technology, который должен добавляться в конец массива technologies.
После проделанных действий у вас должен получиться шаблон Developer, благодаря которому вы будете создавать дочерние классы.
Вам сейчас необходимо создать 3 дочерних класса от класса Developer:
  • JuniorDeveloper. Конструктор данного класса принимает 2 параметра: fullName и age. Вызовите конструктор родительского класса и передайте туда эти 2 параметра. В качестве 3-го у нас выступает position. Вам необходимо его указать по умолчанию. Напишите значение “Junior” в качестве 3-го параметра вызова родительского конструктора. Кроме этого переопределить метод code, чтобы он выводил в консоль строку “Junior разработчик пишет код...”. Массив technologies должен содержать следующие технологии: 'HTML', 'CSS', 'JavaScript'.
  • MiddleDeveloper. Проделайте ту же самую работу в конструкторе, что и JuniorDeveloper. Только на место position передавайте значение “Middle”. Метод code у класса MiddleDeveloper должен выводить в консоль строку “Middle разработчик пишет код...”. Массив technologies должен содержать следующие технологии: 'HTML', 'CSS', 'JavaScript', ‘React’.
  • SeniorDeveloper. Проделайте ту же самую работу в конструкторе, что и JuniorDeveloper. Только на место position передавайте значение “Senior”. Метод code у класса SeniorDeveloper должен выводить в консоль строку “Senior разработчик пишет код...”. Массив technologies должен содержать следующие технологии: 'HTML', 'CSS', 'JavaScript', ‘React’, ‘NodeJS’.
Примечание: когда вы переопределите метод code в дочерних классах, то вы используете принцип Полиморфизм.
Тестируйте написанные классы с помощью этого кода:
JavaScript
1
2
3
4
5
6
7
8
9
10
juniorDeveloper.code(); // Junior разработчик пишет код...
middleDeveloper.code(); // Middle разработчик пишет код...
seniorDeveloper.code(); // Senior разработчик пишет код...
 
console.log(juniorDeveloper.fullName, juniorDeveloper.age,
juniorDeveloper.position); // 'Анастасия', 20, 'Junior'
console.log(middleDeveloper.fullName, middleDeveloper.age,
middleDeveloper.position); // 'Игорь', 25, 'Middle'
console.log(seniorDeveloper.fullName, seniorDeveloper.age,
seniorDeveloper.position); // 'Максим', 30, 'Senior'
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2021, 14:28
Ответы с готовыми решениями:

Как сделать generic класс, который будет принимать в качестве параметра только числа и уметь их складывать и т.д?
Я хочу написать класс дерева отрезков в который можно передавать любые числа, однако даже T extends Number мне не помогает, потому что для...

Создать класс, который будет способен принимать значения 1, 2, 3, 10 и никакие другие.
Помогите, пожалуйста. Ребят, хочу я создать класс, который будет способен принимать значения 1, 2, 3, 10 и никакие другие. Как реализовать?

создать новый файл, имя которого передается в качестве параметра......
shell unix создает новый файл имя которого передается в качестве параметра Выводит на экран каждые 6 секунд очередные 2 строки файла в...

2
02.08.2021, 16:35

Не по теме:

Цитата Сообщение от aleksskay4 Посмотреть сообщение
Текущая позиция разработчика в компании (например, Junior, Middle, Senior)
а какая зарплата? требования?

1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
02.08.2021, 16:39
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/**
 * Проверка аргумента на соответствие условию.
 * Если не выполнено, то выбросить ошибку.
 * @param {any} value Значение для проверки
 * @param {(v:any) => boolean} predicate Функция соответствия условию или итерируемая коллекция функций
 * @param {string} message Сообщение об ошибке
 */
function guard(value, predicate, message) {
    if (typeof predicate === "function") {
        if (!predicate(value))
            throw new Error(message);
    }
    else if (predicate?.[Symbol.iterator]) {
        for (let p of predicate) {
            if (!p(value))
                throw new Error(message);
        }
    }
}
const isStr = v => typeof v === "string" && v.trim().length;
const isInt = v => Number.isInteger(v) && v > 0;
 
class Developer {
    constructor(fullName, age, position) {
        guard(this, v => v.constructor !== Developer, "Attempt to create an instance of abstract class.");
        guard(fullName, isStr, "fullName must be string");
        guard(age, isInt, "age must be integer > 0");
        guard(position, isStr, "position must be string");
        this.fullName = fullName;
        this.age = age;
        this.position = position;
        this.technologies = [];
    }
    code() { }
    learnNewTechnology(technology) {
        guard(technology, isStr, "technology must be string");
        if (!this.technologies.contains(technology))
            this.technologies.push(technology);
    }
}
class JuniorDeveloper extends Developer {
    constructor(fullName, age) {
        super(fullName, age, 'Junior');
        this.technologies.push('HTML', 'CSS', 'JavaScript');
    }
    code() { console.log('Junior разработчик пишет код...'); }
}
class MiddleDeveloper extends Developer {
    constructor(fullName, age) {
        super(fullName, age, 'Middle');
        this.technologies.push('HTML', 'CSS', 'JavaScript', 'React');
    }
    code() { console.log('Middle разработчик пишет код...'); }
}
class SeniorDeveloper extends Developer {
    constructor(fullName, age) {
        super(fullName, age, 'Senior');
        this.technologies.push('HTML', 'CSS', 'JavaScript', 'React', 'NodeJS');
    }
    code() { console.log('Senior разработчик пишет код...'); }
}
 
let juniorDeveloper = new JuniorDeveloper('Анастасия', 20, 'Junior'),
    middleDeveloper = new MiddleDeveloper('Игорь', 25, 'Middle'),
    seniorDeveloper = new SeniorDeveloper('Максим', 30, 'Senior');
 
juniorDeveloper.code(); // Junior разработчик пишет код...
middleDeveloper.code(); // Middle разработчик пишет код...
seniorDeveloper.code(); // Senior разработчик пишет код...
 
console.log(juniorDeveloper.fullName, juniorDeveloper.age,
    juniorDeveloper.position); // 'Анастасия', 20, 'Junior'
console.log(middleDeveloper.fullName, middleDeveloper.age,
    middleDeveloper.position); // 'Игорь', 25, 'Middle'
console.log(seniorDeveloper.fullName, seniorDeveloper.age,
    seniorDeveloper.position); // 'Максим', 30, 'Senior'
 
console.log(juniorDeveloper.technologies);
console.log(middleDeveloper.technologies);
console.log(seniorDeveloper.technologies);
mr_dramm, там на фирме всё печально. Даже если джуниор изучит реакт и ноду, он всё равно будет продолжать работать за еду...
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2021, 16:39
Помогаю со студенческими работами здесь

Создать класс Вектор на плоскости (поля-координаты начала и конца вектора).Реализовать для него методы:конструктор,вычисление координат самого вектора
Создать класс Вектор на плоскости (поля-координаты начала и конца вектора).Реализовать для него методы:конструктор,вычисление координат...

Класс: Создать класс, объектом которого будет являться двумерный массив размерностью n x m.
Нужно создать класс, объектом которого будет являться двумерный массив размерностью n x m. Массив должен размещаться в динамической памяти....

Создать класс, конструктор которого генерирует динамический массив
Здравствуете, начал изучать С++, мне задали вот такое задание. Как его решать я понятия не имею. Помогите пожалуйста. Нужно создать...

Принимать и передавать в качестве параметра имя файла
Добрый вечер. Написать командный файл, который: принимает в качестве параметра короткое имя файла вызывает файл 1.bat, передавая ему...

Создать класс, конструктор которого генерирует динамический массив чисел
Создать класс, конструктор которого генерирует динамический массив чисел Тип данных: Действительный Количество элементов: 13 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru