Object and Object Constructors in JavaScript?
W żyjącym świecie programowania zorientowanego obiektowo znamy już znaczenie klas i obiektów, ale w przeciwieństwie do innych języków programowania, JavaScript nie posiada tradycyjnych klas, jakie można zobaczyć w innych językach. Ale JavaScript ma obiekty i konstruktory, które działają w większości w ten sam sposób, aby wykonać ten sam rodzaj operacji.
- Konstruktory są ogólnymi funkcjami JavaScript, które są używane ze słowem kluczowym „new”. Konstruktory są dwóch typów w JavaScript tj. konstruktory wbudowane (tablicowe i obiektowe) oraz konstruktory własne (definiują właściwości i metody dla konkretnych obiektów).
- Konstruktory mogą być użyteczne kiedy potrzebujemy sposobu na stworzenie obiektu „typu”, który może być użyty wiele razy bez konieczności ponownego definiowania obiektu za każdym razem i to może być osiągnięte przy użyciu funkcji Konstruktora Obiektu. Konwencją jest pisanie wielkich liter w nazwach konstruktorów, aby odróżnić je od zwykłych funkcji.
Na przykład rozważ następujący kod:
function Automobile(color) { this.color=color;}var vehicle1 = new Automobile ("red");
Funkcja „Automobile()” jest konstruktorem obiektu, a jej właściwości i metody tj. „kolor” są zadeklarowane wewnątrz niej poprzez poprzedzenie jej słowem kluczowym „this”. Obiekty zdefiniowane za pomocą konstruktora obiektów są następnie tworzone jako instanty za pomocą słowa kluczowego „new”.
Gdy new Automobile() jest wywołany, JavaScript robi dwie rzeczy:
- Tworzy świeży nowy obiekt(instancję) Automobile() i przypisuje go do zmiennej.
- Ustawia właściwość konstruktora tj. „kolor” obiektu na Automobile.
Metoda Object.create()
Metoda Object.create() jest używana do tworzenia nowego obiektu z określonym prototypem obiektu i właściwościami. Metoda Object.create() zwraca nowy obiekt z podanym prototypem obiektu i właściwościami.
Zastosowanie:
- Object.create() służy do implementacji dziedziczenia.
Syntaktyka:
Object.create(prototype)
Używane parametry:
- prototyp :
Jest to prototyp obiektu, na podstawie którego należy utworzyć nowy obiekt.
- propertiesObject : Jest to parametr opcjonalny. Określa enumerowalne właściwości, które mają zostać dodane do nowo utworzonego obiektu.
Wartość zwracana:
Object.create() zwraca nowy obiekt z podanym obiektem prototypowym i właściwościami.
Przykłady działania powyższej funkcji znajdują się poniżej.
Przykłady:
Wyjaśnienie: W tym przykładzie istnieją dwie funkcje „fruits” i „apple”.Tworzona jest nowa instancja apple, która nosi nazwę „app” i została określona prototypem i właściwością „fruits” tj. this.name = 'fruit 1′.
Wyjaśnienie: W tym przykładzie istnieją dwie funkcje „fruits” i „apple”.Tworzona jest nowa instancja apple, która nosi nazwę „app” i została określona prototypem i właściwością „fruits” tj. this.name = 'fruit 1′ i this .season = 'summer’.
Kody dla powyższej funkcji są podane poniżej.
Kod 1:
OUTPUT :
"fruit 1"
Kod 2:
OUTPUT :
"fruit 1""summer"
Exceptions :
- Object.create( ) method throws a TypeError exception if the propertiesObject parameter isn’t null.
- Object.create( ) method throws a TypeError exception if the propertiesObject parameter is a non primitive object.
.