Derse geri dön

Üst üste bağlama

önem: 5

Fazladan bir defa daha bağlama işlemi yaparak this’i değiştirebilir miyiz?

Aşağıdaki kodun çıktısı nedir?

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

f = f.bind( {name: "John"} ).bind( {name: "Ann" } );

f();

Cevap: John.

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

f = f.bind( {name: "John"} ).bind( {name: "Pete"} );

f(); // John

f.bind(...) tarafından dönen egzotik objeler bound function yaratıldığı zamanki kaynağı hatırlar. Bundan dolayı bir fonksiyon birden fazla defa bağlanamaz.