Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe JavaScript

Słowa kluczowe: JavaScript Klasa Metoda obiektu w JavaScript Obiekt w JavaScript Operator new w JavaScript

Co robi w JavaScript zapis var wynik = napis1 instanceof napisy;?

A. tworzy nową klasę napis1
Źle. Klasę deklaruje się słowem class; instanceof niczego nie tworzy.
B. kopiuje obiekt napis1 do zmiennej napisy
Źle. Kopiowanie to przypisanie, a wynik trafia do zmiennej wynik jako wartość logiczna.
C. sprawdza, czy obiekt napis1 jest instancją klasy napisy
Dobrze. instanceof zwraca true, gdy obiekt pochodzi z podanej klasy.
D. sprawdza, czy klasa napisy ma metodę napis1
Źle. Obecność metody sprawdza się przez typeof albo operator in.

Operator instanceof sprawdza, czy obiekt po lewej stronie został utworzony z klasy (konstruktora) podanej po prawej stronie, i zwraca wartość logiczną. Jeśli wcześniej wykonano var napis1 = new napisy();, to wynik będzie równy true, a dla zwykłego napisu czy liczby - false.

Sprawdzenie obejmuje cały łańcuch dziedziczenia: obiekt klasy pochodnej jest też instancją klasy bazowej, a każda tablica daje true dla [] instanceof Array i [] instanceof Object. Operator przydaje się przed wywołaniem metody, którą ma tylko obiekt określonej klasy, oraz przy obsłudze wyjątków, na przykład if (e instanceof TypeError).

Wynik operatora najczęściej trafia do instrukcji warunkowej, na przykład if (napis1 instanceof napisy) { ... }.

Zapis zawiera nazwę klasy i nazwę obiektu, dlatego kusi odczytanie go jako tworzenie czegoś nowego. Nową klasę deklaruje się jednak słowem class, a obiekt tworzy operatorem new. instanceof niczego nie tworzy, tylko porównuje i zwraca true albo false.

Sprawdzanie metody w klasie wygląda inaczej, na przykład typeof obiekt.metoda === 'function' albo 'metoda' in obiekt. Słowo „sprawdza” w tej odpowiedzi jest trafne, ale dotyczy czegoś innego niż działanie operatora.

Kopiowanie obiektu do zmiennej to zwykłe przypisanie napisy = napis1;, a zmienna po lewej stronie znaku równości w zadaniu nazywa się wynik. Do niej trafia wartość logiczna: czy napis1 jest instancją klasy napisy.

Wskazówką jest też miejsce wyniku: wyrażenie stoi po prawej stronie przypisania, więc musi dawać jakąś wartość. Operator porównujący typ obiektu z klasą daje wartość logiczną, którą zapamiętuje zmienna wynik.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.