Objekt a objektové konstruktory v JavaScriptu?
V živém světě objektově orientovaného programování již známe význam tříd a objektů, ale na rozdíl od jiných programovacích jazyků nemá JavaScript tradiční třídy, jak je známe z jiných jazyků. JavaScript však má objekty a konstruktory, které pracují většinou stejným způsobem a provádějí stejný druh operací.
- Konstruktory jsou obecné funkce jazyka JavaScript, které se používají s klíčovým slovem „new“. Konstruktory jsou v JavaScriptu dvojího typu, tj. vestavěné konstruktory(pole a objekt) a vlastní konstruktory(definují vlastnosti a metody pro konkrétní objekty).
- Konstruktory mohou být užitečné, když potřebujeme způsob, jak vytvořit „typ“ objektu, který lze použít vícekrát, aniž bychom museli objekt pokaždé znovu definovat, a toho lze dosáhnout pomocí funkce Object Constructor. Je konvencí psát název konstruktorů s velkým písmenem, abychom je odlišili od běžných funkcí.
Příklad uvažujme následující kód:
function Automobile(color) { this.color=color;}var vehicle1 = new Automobile ("red");
Funkce „Automobil()“ je konstruktor objektu a jeho vlastnosti a metody, tj. barva, jsou v ní deklarovány předřazením klíčového slova „this“. Objekty definované pomocí objektového konstruktoru se pak stávají instancemi pomocí klíčového slova „new“.
Při volání new Automobile() provede JavaScript dvě věci:
- Vytvoří čerstvý nový objekt(instanci) Automobile() a přiřadí jej do proměnné.
- Nastaví vlastnost konstruktoru, tedy „barvu“ objektu na Automobil.
Object.create() Metoda
Object.create() methord slouží k vytvoření nového objektu se zadaným prototypem objektu a vlastnostmi. Metoda Object.create() vrací nový objekt se zadaným prototypovým objektem a vlastnostmi.
Aplikace:
- Metoda Object.create() se používá pro implementaci dědičnosti.
Syntaxe:
Object.create(prototype)
Použité parametry:
- prototyp :
Je to objekt prototypu, ze kterého má být vytvořen nový objekt.
- objekt vlastností : Je to nepovinný parametr. Určuje vyjmenované vlastnosti, které mají být přidány k nově vytvořenému objektu.
Vrácená hodnota:
Object.create() vrací nový objekt se zadaným objektem prototypu a vlastnostmi.
Níže jsou uvedeny příklady výše uvedené funkce.
Příklady:
Vysvětlení: V tomto příkladu jsou dvě funkce „fruits“ a „apple“. je vytvořena nová instance jablka, která je pojmenována jako „app“ a byla specifikována prototypem a vlastností „fruits“, tj. this.name = ‚fruit 1‘.
Vysvětlení: V tomto příkladu jsou dvě funkce „fruits“ a „apple“. je vytvořena nová instance jablka, která je pojmenována jako „app“ a byla specifikována prototypem a vlastností „fruits“, tj. this.name = ‚fruit 1‘ a this .season = ‚summer‘.
Kódy pro výše uvedené funkce jsou uvedeny níže.
Kód 1:
Výstup :
"fruit 1"
Kód 2:
OUTPUT :
"fruit 1""summer"
Výjimky :
- Objekt.create( ) metoda vyhodí výjimku TypeError, pokud parametr propertiesObject není null.
- Object.create( ) metoda vyhodí výjimku TypeError, pokud je parametr propertiesObject jiný než primitivní objekt.