zpět k lekci

Druhá vazba

důležitost: 5

Můžeme změnit this další vazbou?

Jaký bude výstup?

function f() {
  alert(this.jméno);
}

f = f.bind( {jméno: "Jan"} ).bind( {jméno: "Anna" } );

f();

Odpověď: Jan.

function f() {
  alert(this.jméno);
}

f = f.bind( {jméno: "Jan"} ).bind( {jméno: "Petr"} );

f(); // Jan

Exotický objekt vázané funkce, vracený funkcí f.bind(...), si pamatuje kontext (a argumenty, jsou-li uvedeny) jen v době vytvoření.

Funkci nelze navázat znovu.