KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 5.
Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?
Ilustracja przedstawia fragment kodu JavaScript, który definiuje obiekt o nazwie 'osoba'.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawny kod musi ustawić wartość właściwości obiektu, a nie ją zwracać.
Instrukcja osoba.j = "PL" powinna zostać obsłużona przez przypisanie do docelowego pola (np. "jezyk"), więc właściwe jest this.jezyk = nazwa;. Odpowiedzi z return tylko odczytują wartość i nie zmieniają stanu obiektu.

Pełne wyjaśnienie:

W JavaScript, aby "obsłużyć" zapis w stylu osoba.j = "PL", potrzebny jest kod, który faktycznie ustawia (modyfikuje) stan obiektu, czyli wykonuje przypisanie do odpowiedniej właściwości. Wskazana odpowiedź this.jezyk = nazwa; spełnia ten warunek: przypisuje przekazaną wartość (tu: "PL") do pola reprezentującego język.

Dlaczego pozostałe propozycje nie pasują do wymaganego efektu?

  • this.j = nazwa; ustawia inną właściwość (o nazwie "j"). Jeżeli w definicji obiektu docelowym polem jest "jezyk", to ustawianie "j" nie zaktualizuje właściwej informacji i spowoduje niespójność danych (dwie różne właściwości zamiast jednej).
  • return this.jezyk; nie ustawia wartości, tylko ją zwraca. To typowy błąd polegający na myleniu zapisu "setter" (ustaw) z "getter" (pobierz). Zwracanie wartości nie spowoduje, że obiekt zacznie przechowywać nowy język.
  • return this.j; również tylko zwraca wartość, a dodatkowo dotyczy właściwości "j", nie "jezyk". W konsekwencji nie realizuje celu zadania: poprawnej obsługi przypisania języka do obiektu.

W praktyce warto zapamiętać prostą zasadę egzaminacyjną: gdy w zadaniu mowa o ustawieniu pola, poprawna odpowiedź zwykle zawiera przypisanie (operator =) do właściwości obiektu, a nie instrukcję return. Dodatkowo trzeba pilnować, by nazwa właściwości po lewej stronie przypisania była zgodna z modelem danych (np. "jezyk", a nie skrót "j"), jeśli zadanie zakłada mapowanie skrótu na pełną nazwę.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To zapis, który zmienia stan obiektu, np. obiekt.wlasciwosc = wartosc. Po takim przypisaniu obiekt "pamięta" nową wartość pod daną nazwą właściwości. To kluczowe w modelach danych i w obsłudze formularzy po stronie przeglądarki.

return służy do zwracania wartości z funkcji, a nie do ustawiania pola.

Setter ma wykonać efekt uboczny: przypisać wartość do właściwości obiektu. Jeśli użyjesz tylko return, stan obiektu może w ogóle się nie zmienić.

Szukaj przypisania do pola obiektu, najczęściej w formie this.nazwaPola = ... lub obiekt.nazwaPola = .... Odpowiedzi zawierające wyłącznie return zwykle oznaczają odczyt (getter), a nie ustawienie (setter).
this wskazuje na obiekt, w kontekście którego wykonywana jest metoda. Dzięki temu zapis this.jezyk = ... oznacza "ustaw właściwość jezyk w bieżącym obiekcie". To standardowy wzorzec w metodach obiektów i konstruktorach.
To dwie różne nazwy właściwości. JavaScript nie traktuje ich jako synonimów. Jeśli obiekt ma przechowywać język w polu jezyk, a kod ustawi j, powstanie niespójność: jedna część programu czyta "jezyk", a inna zapisuje "j".
Alias bywa używany przy integracji z danymi zewnętrznymi (np. krótkie klucze w JSON) lub w starszym kodzie. Wtedy stosuje się mapowanie: zapis do aliasu aktualizuje właściwe pole (np. "jezyk"). To poprawia czytelność i ułatwia utrzymanie aplikacji.

Po wykonaniu przypisania wypisz obiekt lub konkretną właściwość.

Przykład: ustaw wartość, a potem sprawdź: console.log(osoba.jezyk). Jeśli widzisz oczekiwany wynik (np. "PL"), to znaczy, że przypisanie zmieniło stan obiektu.

Nie, jeśli celem jest ustawienie wartości. return this.jezyk co najwyżej zwróci aktualny język, ale nie zapisze nowej wartości. Taki kod pasuje do funkcji "pobierz język", a nie do fragmentu odpowiedzialnego za obsługę przypisania.
Najczęstsze pomyłki to: wybór odpowiedzi z return zamiast przypisania, ustawienie niewłaściwej nazwy pola (np. "j" zamiast "jezyk"), oraz brak rozróżnienia między odczytem a modyfikacją obiektu. Pomaga testowanie w konsoli i czytanie kodu "po lewej stronie =".
Ćwicz na krótkich przykładach: twórz obiekty, dopisuj metody ustawiające i odczytujące, a potem testuj przypisania. Utrwal różnicę: przypisanie zmienia obiekt, a return zwraca wartość. Zwracaj uwagę na spójne nazwy właściwości.
info

Statystycznie 48% uczniów zna prawidłową odpowiedź. trudne

Według specjalistów z branży: "Odpowiedzi z return tylko odczytują wartość i nie zmieniają stanu obiektu."

Źródła:

  • MDN Web Docs: Working with objects (JavaScript) – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_objects (dostęp: 2026-03-02)
  • MDN Web Docs: Assignment (=) operator – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment (dostęp: 2026-03-02)
  • MDN Web Docs: return statement – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja MDN: obiekty w JavaScript i praca z właściwościami
  • Dokumentacja MDN: przypisanie (operator =) i różnica między przypisaniem a zwracaniem wartości
  • Kurs podstaw JavaScript: obiekty, metody, kontekst wywołania

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego