Konstruktor v JavaScripte - jeho typy a dovozné metódy

Obsah:

Anonim

Úvod do konštruktora v JavaScripte

Konštruktorová metóda v JavaScripte je špeciálna metóda, ktorá sa používa na vytváranie a inicializáciu objektov v rámci triedy. To robí konštruktor v každom programovacom jazyku. Čo odlišuje konštruktor jazyka JavaScript od ostatných, je sloboda, pokiaľ ide o syntax. Aby ste to lepšie pochopili, jednoducho otvorte vývojárske nástroje prehliadača (Ctrl / Cmd + Shift + C) a prejdite na kartu Konzola v okne vývojových nástrojov.

V prehliadači Chrome to vyzerá takto

Toto je ihrisko pre väčšinu konceptov týkajúcich sa jazyka JavaScript. Toto ihrisko by sme používali v tomto článku.

Typy konštruktorov v JavaScripte

V JavaScripte existujú dva typy konštruktorov

1. Vstavané konštruktory

Toto sú ľahko dostupné konštruktory, ktoré sú dodávané spolu s exekučným prostredím. Užívateľ ich musí jednoducho vyvolať a porušiť, práca je hotová. Príkladmi vstavaných konštruktorov sú Array, Date a Object.

2. Konštruktory definované používateľom

Toto sú konštruktory deklarované a definované programátorom na použitie v celej aplikácii. Programátor môže tiež definovať vlastnosti a metódy svojich vlastných typov. Sú tiež známe ako stavitelia na zákazku. Podľa konvencie sú všetci konštruktori JavaScriptu ukladaní veta. Toto má povedať osobe, ktorá ich používa, že táto funkcia musí byť vyvolaná pomocou nového kľúčového slova.

Ako Konštruktori pracujú v JavaScripte?

Predtým, ako sa pozrieme na syntax konštruktorov jazyka JavaScript, musíme porozumieť veľmi základnému pojmu JavaScript -

  • Trieda Object sumarizuje v kontexte tohto článku, každý objekt JavaScript je vytvorený konštruktorom objektu. Ak je hodnota zadaná pri vytváraní objektu nulová alebo nedefinovaná, konštruktor objektov vytvorí prázdny objekt. V opačnom prípade vytvorí objekt typu definovaného pri jeho vytváraní.
  • Vždy, keď je deklarovaný nový objekt typu triedy, nové kľúčové slovo vráti odkaz na novovytvorený objekt. K tomuto objektu sa pristupuje pomocou tohto kľúčového slova vo vnútri konštruktora na inicializáciu vlastností objektu.
  • Technicky JavaScript nemá triedy, ale má konštruktory a prototypy, ktoré prinášajú podobné funkcie. V ECMAScript 2015 bol koncept tried predstavený v JavaScripte. Bol to jednoducho syntaktický doplnok k existujúcemu dedičstvu založenému na prototypoch a do jazyka sa nepridali žiadne nové funkcie.

Syntax a príklady konštruktora v Javascripte

1) Metóda konštrukcie

Nižšie je uvedená metóda konštruktora. Táto metóda sa používa vo vnútri prototypu triedy.

syntax

constructor((arguments))( … )

kód

class Employee(
constructor(id, name)(
this.id = id;
this.name = name;
))
var emp1 = new Employee(123, "John");
console.log(emp1.name);

Výkon:

2) Object Constructor (Built-in Constructors)

Konštruktor objektov sa volá priamo, keď sa vytvorí objekt triedy Object. Toto vytvára objekt triedy Object, ak sú argumenty neplatné alebo nedefinované parametre. Inak sa vytvorí objekt typu daných parametrov.

syntax

new Object(( value ))

alebo

new Array(( value ))

alebo

new Date(( value ))

alebo

new String(( value ))

alebo

new Number(( value ))

alebo

new Boolean(( value ))

alebo

new Function(( value ))

alebo

new Error(( value ))

alebo

new RegExp(( value ))

a tak ďalej…

kód:

var name = new Object("John");
var age = new Object(28);
console.log("Name : "+name+" & Age : "+age);

Výkon:

3) Výrobcovia polí a dátumov

Podobným spôsobom možno konštruktory Array a Date použiť aj na vytváranie objektov príslušných typov.

kód:

var alphabets = new Array('Apple', 'Ball', 'Cat');
console.log(alphabets);

Výkon:

kód:

var now = new Date();
console.log(now);

Výkon:

kód:

var err = new Error("A user-defined error has occurred.");
console.log(err);

Výkon:

4) Vlastné konštruktory

Môžeme tiež vyhlásiť a definovať našich vlastných konštruktorov, ktoré sa majú použiť v celej našej aplikácii. Pozrime sa, ako to možno dosiahnuť.

syntax

function FunctionName((arguments))( … )

kód

function Book(name, author, year) (
this.name = name;
this.author = author;
this.year = year;
)
function displayBook(book)(
console.log('\'' + book.name + '\' authored by ' + book.author + ' in the year ' + book.year + '.');
)
var book1 = new Book('Java - The Complete Reference', 'Herbert Schildt', 2006);
var book2 = new Book('Let Us C', 'Yashavant Kanetkar', 2002);
var book3 = new Book('Data Structures', 'Seymour Lipschutz', 2005);
displayBook(book1);
displayBook(book2);
displayBook(book3);

Výkon:

Dôležitosť nového kľúčového slova

Teraz sa možno pýtate, čo keď nepoužijem nové kľúčové slovo? Môžem vynechať nové kľúčové slovo? No, môj priateľ, nie. Použitie nového kľúčového slova je veľmi dôležité.

  • Konštruktory JavaScriptu sú bežné funkcie. Sú sprevádzané novým kľúčovým slovom, ktoré hovorí stroju JavaScript, že nový objekt musí byť skonštruovaný s danými vlastnosťami. Bez nového kľúčového slova by ste jednoducho vytvárali čoraz viac globálnych objektov.
  • Nové kľúčové slovo vráti odkaz na novovytvorený objekt. Tento odkaz potom uložíme do premennej. Bez nového kľúčového slova sa objekt vytvorí, ale nevráti sa žiadny odkaz na objekt. Objekt predpokladá globálny rozsah. Jediný odkaz na tento objekt je cez objekt okna.
  • Zmätený? Poďme lepšie porozumieť príkladom. Zvážte vyššie uvedený príklad. Z deklarácií objektov sme odstránili nové kľúčové slovo. Výsledkom bola výnimka z nedefinovaných premenných. Dôvodom je, že bez nového kľúčového slova sa referencia novovytvorených objektov nevrátila a teda nebola uložená v našich premenných book1, book2 a book3. Keď sme sa pokúsili získať prístup k týmto premenným v metóde zobrazovacej knihy, vyvolá sa výnimka.

kód:

function Book(name, author, year) (
this.name = name;
this.author = author;
this.year = year;
)
function displayBook(book)(
console.log('\'' + book.name + '\' authored by ' + book.author + ' in the year ' + book.year + '.');
)
var book1 = Book('Java - The Complete Reference', 'Herbert Schildt', 2006);
var book2 = Book('Let Us C', 'Yashavant Kanetkar', 2002);
var book3 = Book('Data Structures', 'Seymour Lipschutz', 2005);
displayBook(book1);
displayBook(book2);
displayBook(book3);

Výkon:

V tom istom príklade, ak upravíme metódu zobrazovania kníh tak, aby sme pristupovali k objektom cez rozsah okna, získame neočakávaný výstup.

kód:

function Book(name, author, year) (
this.name = name;
this.author = author;
this.year = year;
)
function displayBook(book)(
console.log('\'' + window.name + '\' authored by ' + window.author +' in the year ' + window.year + '.');
)
var book1 = Book('Java - The Complete Reference', 'Herbert Schildt', 2006);
var book2 = Book('Let Us C', 'Yashavant Kanetkar', 2002);
var book3 = Book('Data Structures', 'Seymour Lipschutz', 2005);
displayBook(book1);
displayBook(book2);
displayBook(book3);

Výkon:

Teraz ako cvičenie urobte trochu brainstormingu, aby ste zistili, prečo dostávame tento výstup!

Konštruktory bezpečné pre rozsah

Vstavané konštruktory v JavaScripte sú konštruktory bezpečné pre rozsah. Pri volaní bez nového kľúčového slova nevytvárajú globálne vymedzené premenné. Tieto objekty teda môžu byť bezpečne vytvorené pomocou alebo bez nového kľúčového slova.

kód

function SampleFn(argument) (
// if "this" is not an instance of the constructor
// it means it was called without new
if (!(this instanceof SampleFn)) (
// call the constructor again with new
return new SampleFn(argument);
)
// The code to construct properties and methods
)

Áno, môžete tiež vytvoriť používateľom definované konštruktory bezpečné pre rozsah. Vo vyššie uvedenom príklade vytvorte pre naše knihy konštruktéra, ktorý bude bezpečný z hľadiska rozsahu.

záver

Tento článok poskytol hĺbkovú demonštráciu konštruktorov jazyka JavaScript. To tiež pomáha pri porozumení fungovania JavaScriptu. Kľúčovou vecou, ​​ktorú si treba zapamätať, je, že aj keď z technického hľadiska neexistujú triedy JavaScript, metódy a prototypy poskytujú vývojárom podobnú funkcionalitu. A áno, nové kľúčové slovo je dôležité.

Odporúčané články

Toto bol sprievodca Konštruktorom v JavaScripte. Tu diskutujeme o jeho typoch a dôležitých metódach s témou Ako vytvoriť konštruktéra bezpečného rozsahu. Ak sa chcete dozvedieť viac, môžete si tiež prečítať naše dané články.

  1. Čo dokáže Javascript?
  2. Čo je to JavaScript?
  3. Ako nainštalovať JavaScript
  4. Destruktor v Jave
  5. Funkcie regulárnych výrazov v Pythone (príklad)
  6. Príklady tohto kľúčového slova
  7. Práca a pravidlá inštancieOf v Jave s príkladom