cachaito
1/28/2014 - 3:26 PM

Metoda .bind()

Metoda .bind() zawsze jako pierwszy parametr przyjmuje this. W tym wypadku nie chcemy przypisać za pomocą .bind() this obiektu ale dodać (nie pożyczyć!) funkcję, do której sami przekazujemy parametry. Przykład ze strony: http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/

var showName = function fn0(plec, wiek, imie) {
  var przedrostek = plec === 'male' ? 'Panie' : 'Pani';

  if(wiek > 25) {
    return 'Witaj ' + przedrostek + ' ' + imie;
  } else {
    return 'Hej ' + imie;
  }
};

//standardowe przypisanie do nowej f-cji z wszystkimi parametrami
var powitanieBaski = showName('female', 19, 'Basia'); // Hej Basia

//z wykorzystaniem .bind(); - null nie wskazuje na żaden obiekt this
var powitanieHenryka = showName.bind(null, 'male', 45);
powitanieHenryka() // Witaj Panie undefined;
powitanieHenryka('Henryk Mosiężny'); // Witaj Panie Henryk Mosiężny