Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 2.62 KB

File metadata and controls

64 lines (43 loc) · 2.62 KB

Task for 20

Решить задачи на контекст

  • создать новый репозиторий
  • решить предложенный набор задач (и покрыть их тестами от 50%)
  • открыть PR с релеватными изменениямяи
  • сделать ревью 1 PR другого студента

Задачи

myBind

Вам необходимо реализовать собственную версию метода .bind для функций в JavaScript. Встроенный .bind использовать нельзя

function greet(greeting, punctuation) {
  return greeting + ", " + this.name + punctuation;
}

const person = { name: "Алиса" };
const greetAlice = greet.myBind(person, "Привет");

console.log(greetAlice("!")); // Ожидаемый результат: "Привет, Алиса!"

Цепочка

Создать конструктор с методами, так, чтобы следующий код работал и делал соответствующие вещи те запуск кода ниже должен делать то, что говорят методы

const u = new User();
u.askName().askAge().showAgeInConsole().showNameInAlert();

ForceConstructor

Создайте функцию ForceConstructor, которая работает как конструктор независимо от того, вызвана она с new или без и сохраняет параметры в создаваемый объект с именами параметров

curry

Написать каррирующую функцию curry ( преобразующую функцию - из функции многих аргументов, получить множество функций одного аргумента)

function sum2(x, y) {
  return x + y;
}
function sum4(a, b, c, d) {
  return a + b + c + d;
}

curry(sum2)(1)(2); // 3
curry(sum4)(2)(3)(4)(5); // 14

Критерии

Домашнее задание ""Принято"" при наборе 3 и более баллов, иначе ""На доработку"".

  1. Создан и настроен новый репозиторий (пустой первый коммит, линтервы, тесты, пайплайны), решены задачи, покрытие тестами от 50% - 3 балла
  2. Покрытие тестами от 70% - +1 балл
  3. Сделано ревью 1 PR другого студента с 5 и более комментариями - +1 балл

Максимальный балл - 5.