// Шаг 1: запись одного обычного объекта с помощью динамического метода sayName

постоянный тест = {

имя: «Вишал»,

sayName: функция (отчество, фамилия) {

console.log(`Привет, это ${this.name} ${middleName} ${lastName}`);

}

};

// даем пример, используя обычный метод привязки

пусть test1 = test.sayName.bind (тест, «Раосахеб»);

тест1("Сияние");

//замените на собственный метод привязки .

// мы можем добавить собственные методы в прототипы функций

Function.prototype.mybind = функция (контекст, … args1) {

//сохранить этот контекст в переменной.

// здесь значением this является метод sayName, который вызвал метод newbind

пусть fn = это;

// bind возвращает функцию

функция возврата (…arg2) {

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

// вызов метода sayName с тестовым объектом в качестве контекста и обоих аргументов

fn.apply(контекст, […args1, …arg2]);

};

};

пусть test2 = test.sayName.mybind (тест, «Раосахеб»);

test2("Сияние");