Главная Категории Контакты Поиск

Функция bind своими руками

Как написать свою функцию bind в JavaScript.

JavaScript ·05.02.2020·читать 1 мин 🤓·Автор: Alex Myzgin

Функция bind создаёт функцию, которая вызывает fn с заданным контекстом, опционально добавляя любые дополнительные предоставленные параметры в начало аргументов.

Она возвращает функцию, которая использует Function.prototype.apply(), чтобы применить данный ей context к fn, затем с помощью оператора распространения spred добавляет любые дополнительные предоставленные параметры к аргументам.

const bind = (fn, context, ...boundArgs) => (...args) =>
  fn.apply(context, [...boundArgs, ...args]);

// Пример:

function greeting(greeting, punctuation) {
  return `${greeting} ${this.userName}${punctuation}`;
}

const alex = { userName: "Alex" };
const alexBound = bind(greeting, alex);

console.log(alexBound("Hello", "!")); // 'Hello Alex!'

Website, name & logo
Copyright © 2019. Alex Myzgin