// Шаг 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("Сияние");