ikona-kursu-2
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (głosów: 1, średnia ocena: 5,00)
Loading...Loading...

Słowo kluczowe this

W JavaScripcie, podobnie jak w większości języków programowania obiektowego, this jest specjalnym słowem kluczowym wykorzystywanym w metodach w celu odwołania się do obiektu, na którym dana metoda jest wywoływana. Wartość this określana jest w kilku prostych krokach:

  1. Jeśli funkcja zostaje wywołana metodą Funkcja.call lub Funkcja.apply, this przyjmie wartość pierwszego argumentu przekazanego do metody call/apply. Jeśli pierwszy argument przekazany do metody call/apply ma wartość null lub undefined, this będzie odnosić się do obiektu globalnego (w przeglądarkach internetowych jest to obiekt window).
  2. Jeśli wywoływana funkcja została utworzona przy pomocy metody Funkcja.bind, this przyjmie wartość pierwszego argumentu, który został przekazany do metody bind w czasie tworzenia funkcji.
  3. Jeśli funkcja jest wywoływana jako metoda obiektu, this odwołuje się do tego obiektu.
  4. W pozostałych przypadkach wywoływana jest samodzielna funkcja, niepowiązana z żadnym obiektem — wówczas this odwołuje się do obiektu globalnego.

Przykład 2.41. Funkcja wywołana przy użyciu metody Funkcja.call

var mojObiekt = {
    przywitajSie : function() {
        console.log('Cześć! Mam na imię ' + this.mojeImie);
    },
    mojeImie : 'Rebecca'
};
var drugiObiekt = {
    mojeImie : 'Colin'
};
mojObiekt.przywitajSie();                  // rejestruje Cześć! Mam na imię Rebecca
mojObiekt.przywitajSie.call(drugiObiekt); // rejestruje Cześć! Mam na imię Colin
Przykład 2.42: Funkcja utworzona przy pomocy metody Function.bind
var mojeImie = 'obiekt globalny',
    przywitajSie = function () {
        console.log('Cześć! Mam na imię ' + this.mojeImie);
    },
    mojObiekt = {
        mojeImie : 'Rebecca'
    };
var mojObiektCzesc = przywitajSie.bind(mojObiekt);
przywitajSie();       // rejestruje Cześć! Mam na imię obiekt globalny
mójObiektCześć();  // rejestruje Cześć! Mam na imię Rebecca
Przykład 2.43: Funkcja wiązana z obiektem w czasie działania programu
var mojeImie = 'obiekt globalny',
    przywitajSie = function () {
        console.log('Czesc! Mam na imie ' + this.mojeImie);
    },
    mojObiekt = {
        mojeImie : 'Rebecca'
    },
    drugiObiekt = {
        mojeImie : 'Colin'
    };
mojObiekt.przywitajSie = przywitajSie;
drugiObiekt.przywitajSie = przywitajSie;
przywitajSie();               // rejestruje Cześć! Mam na imię obiekt globalny
mójObiekt.przywitajSie();      // rejestruje Cześć! Mam na imię Rebecca
drugiObiekt.przywitajSie();  // rejestruje Cześć! Mam na imię Colin

Inne artykuły poruszające podobny temat

CSSRegions.js ikona

CSSRegions.js

1 komentarz

  1. lutek

    04.29.2014

    Odpowiedz

    var obj = mojaPrzestrzenNazw.mojObiekt;

    obj.przywitajSie(); // rejestruje Cześć! Mam na imię Rebecca

    chyba tak to powinno wyglądać

Dodaj komentarz









Newsletter

Subskrybując nasz newsletter masz pewność, że nie ominie Cię żadna nowość w serwisie!