Image Local Storage

There’s a great quote by Joe Armstrong, the creator of Erlang:
The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.
Wyczyść lokalną pamięć

Słowo kluczowe this

Słowo kluczowe this nie odnosi się do funkcji w której jest używany ani do jej kontekstu. Odnosi się do obiektu, na którym wykonywana jest funkcja i zależy całkowicie od wywołania sposobu funkcji.

Implicit Binding (domyślne wiązanie)

  const person = {
    name: 'Krzysztof',
    powitanie() {
      console.log('Hej, na imię mi ' + this.name)
    }
  }
  person.powitanie() // Hej, na imię mi Krzysztof
  

Explicit Binding (bezpośrednie wiązanie)

Funkcja call

  function witaj() { console.log( this.name );}
  var osoba = { name: 'Krzyś'};
  witaj.call( osoba, arg1, arg2, arg3, ... ); // Krzyś
  

Funkcja apply

  function witaj() { console.log( this.name );}
  var osoba = { name: 'Krzyś'};
  witaj.apply( osoba, [arg1, arg2, arg3, ... ]); // Krzyś
  

Funkcja bind (zwiąż)

Funkcja bind tworzy nową funkcję, która wywoła pierwotną funkcję związaną z tym, co zostało przekazane.
  function witaj() { console.log( this.name );}
  var osoba = { name: 'Krzyś'};
  var helloOsoba() = witaj.bind(osoba);
  helloOsoba(); // Krzyś