Sobes.tech
Назад к вопросам
Middle+
4

Реализуй метод Function.prototype.bind — функцию, которая принимает контекст и возвращает новую функцию с привязанным контекстом.

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

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

if (!Function.prototype.bind) {
  Function.prototype.bind = function(context, ...bindArgs) {
    const fn = this;
    return function(...callArgs) {
      return fn.apply(context, bindArgs.concat(callArgs));
    };
  };
}

Здесь bind возвращает новую функцию, которая при вызове вызывает исходную функцию с заданным контекстом и аргументами.

Пример использования:

const obj = {name: 'Alice'};
function greet(greeting) {
  return greeting + ', ' + this.name;
}
const boundGreet = greet.bind(obj);
console.log(boundGreet('Hello')); // Hello, Alice