JSFiddle - React, Tailwind, and code Playground

JavaScript

function f() {
  alert(this.name);
}

f = bind(f, {name: "Вася"} ); //(1) тут мы в ссылку на функцию f возвращаем обертку от нее.Так? Получается что мы перезаписываем f?
f = bind(f, {name: "Петя"} ); //(2) тут мы снова делаем тоже самое.
f(); // но результат все равно Вася. Почему???

//если же возвращать обертку допустим в новую переменную j, то по итогу ответ будет Петя. Дело тут видимо в том что мы в ссылку на функцию пишем обертку от нее.Хорошо.И ссылка на функцию f у нас сохранена в функции bind.Почему строка (2) не работает?


function bind(func, context) {
  return function() {
    return func.apply(context, arguments);
  };
}