Operator new w JavaScript
Operator new służy w JavaScript do tworzenia nowej instancji obiektu na podstawie konstruktora, czyli funkcji konstruktora albo klasy. Zapis:
var napis1 = new Napisy();
oznacza: utwórz nowy obiekt klasy/konstruktora Napisy i przypisz go do zmiennej napis1.
Co robi new?
Po użyciu operatora new JavaScript:
- tworzy nowy pusty obiekt,
- ustawia jego prototyp na prototyp konstruktora,
- wywołuje konstruktor z this wskazującym na nowy obiekt,
- zwraca utworzony obiekt, jeśli konstruktor nie zwróci jawnie innego obiektu.
Przykład z klasą
class Napisy {
constructor(tresc) {
this.tresc = tresc;
}
}
var napis1 = new Napisy("Egzamin");
console.log(napis1.tresc); // Egzamin
W tym przykładzie Napisy jest klasą, a napis1 jest obiektem, czyli instancją tej klasy.
Przykład z funkcją konstruktora
function Osoba(imie) {
this.imie = imie;
}
var uczen = new Osoba("Anna");
console.log(uczen.imie); // Anna
Funkcja Osoba pełni rolę konstruktora. Operator new tworzy obiekt uczen.
Typowy błąd egzaminacyjny
Zapis var napis1 = new Napisy(); nie tworzy klasy napis1. Klasa lub konstruktor to Napisy, natomiast napis1 to zmienna przechowująca nową instancję obiektu.
W pytaniach egzaminacyjnych najważniejsze skojarzenie to: new = utworzenie nowego obiektu / instancji klasy.