назад до уроку

Друга прив’язка

важливість: 5

Чи можемо ми змінити this за допомогою додаткового прив’язування?

Який результат буде виведено?

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

f = f.bind( {name: "Іван"} ).bind( {name: "Христя" } );

f();

Відповідь: Іван.

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

f = f.bind( {name: "Іван"} ).bind( {name: "Христя"} );

f(); // Іван

Екзотичний об’єкт прив’язаної функції повертається від f.bind(...), що запам’ятовує контекст (та аргументи, якщо передані) тільки під час створення.

Функція не може бути переприв’язана.