Konstruktor u JavaScript-u - njegove vrste i metode uvoznika

Sadržaj:

Anonim

Uvod u Konstruktor na JavaScript-u

Metoda konstruktora u JavaScriptu je posebna metoda koja se koristi za stvaranje i inicijalizaciju objekata unutar klase. To čini konstruktor u svakom programskom jeziku. Ono što JavaScript konstruktor razlikuje od ostalih je sloboda u pogledu sintakse. Da biste ga bolje razumjeli, jednostavno otvorite alate za razvojne programere preglednika (Ctrl / Cmd + Shift + C) i idite na karticu Konzola u prozoru alata za razvojne programere.

Ovako izgleda u Chromeu

Ovo je igralište za većinu pojmova u vezi sa JavaScriptom. Ovim ćemo se igralištem koristiti u cijelom ovom članku.

Vrste konstruktora u JavaScript-u

Postoje dvije vrste konstruktora u JavaScript-u

1. Ugrađeni konstruktori

Ovo su lako dostupni konstruktori koji dolaze u paketu s izvršnim okruženjem. Korisnik ih jednostavno mora pozvati i prekršiti, posao je obavljen. Primjeri ugrađenih konstruktora su Array, Date i Object.

2. Konstruktori koje definira korisnik

To su konstruktori koje programer deklarira i definira za upotrebu tijekom aplikacije. Programer također može definirati svojstva i metode svojih vlastitih tipova. Poznati su i kao prilagođeni konstruktori. Prema dogovoru, svi JavaScript konstruktori su u rečenicama. Time se želi reći osobi koja ih koristi da se ova funkcija mora pozvati pomoću nove ključne riječi.

Kako konstruktori rade u JavaScript-u?

Prije nego što pogledamo sintaksu JavaScript konstruktora, trebamo razumjeti vrlo osnovni pojam JavaScripta -

  • Klasa Objekta sažeto je u kontekstu ovog članka, svaki JavaScript objekt kreira konstruktor Object. Ako je vrijednost data tijekom stvaranja objekta nula ili nedefinirana, Konstruktor objekta će stvoriti prazan objekt. U suprotnom, stvorit će objekt definiranog tipa tijekom kreiranja objekta.
  • Kad god je proglašen novi objekt vrste klase, nova ključna riječ vraća referencu na novo kreirani objekt. Tom objektu pristupa se pomoću ove ključne riječi unutar konstruktora za inicijalizaciju svojstava objekta.
  • Iako, tehnički JavaScript nema klase, ali ima konstruktore i prototipove za donošenje slične funkcionalnosti. U ECMAScript 2015, koncept nastave uveden je u JavaScript. To je bio jednostavno sintaktički dodatak postojećem nasljeđivanju temeljenom na prototipu i nije dodao nikakvu novu funkcionalnost jeziku.

Sintaksa i primjeri konstruktora u Javascriptu

1) Konstrukcijska metoda

Ispod je metoda konstruktora. Ova se metoda koristi unutar prototipa klase.

Sintaksa

constructor((arguments))( … )

Kodirati

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

Izlaz:

2) Konstruktor objekta (ugrađeni konstruktori)

Object se konstruktor poziva izravno kada se stvori objekt klase Objekt. Ovo stvara objekt klase Objekt ako se kao argumenti prenesu null ili nedefinirani parametri. U suprotnom, stvara se objekt vrste zadanih parametara.

Sintaksa

new Object(( value ))

Ili

new Array(( value ))

Ili

new Date(( value ))

Ili

new String(( value ))

Ili

new Number(( value ))

Ili

new Boolean(( value ))

Ili

new Function(( value ))

Ili

new Error(( value ))

Ili

new RegExp(( value ))

i tako dalje…

Kodirati:

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

Izlaz:

3) Konstruktori nizova i datuma

Na sličan način konstruktori Array i Date mogu se također koristiti za stvaranje objekata odgovarajućih tipova.

Kodirati:

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

Izlaz:

Kodirati:

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

Izlaz:

Kodirati:

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

Izlaz:

4) Prilagođeni konstruktori

Također možemo izjaviti i definirati vlastite konstruktore koji će se koristiti tijekom naše primjene. Pogledajmo kako se to može postići.

Sintaksa

function FunctionName((arguments))( … )

Kodirati

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);

Izlaz:

Važnost nove ključne riječi

Možda se pitate što ako ne koristim novu ključnu riječ? Mogu li izostaviti novu ključnu riječ? Pa, prijatelju moj, ne. Korištenje nove ključne riječi vrlo je bitno.

  • JavaScript konstruktori su redovne funkcije. Prati ih nova ključna riječ koja JavaScript engineu poručuje da s danim svojstvima mora biti konstruiran novi objekt. Bez nove ključne riječi jednostavno biste stvarali sve više i više globalnih objekata.
  • Nova ključna riječ vraća referencu na novo stvoreni objekt. Potom ovu referencu pohranjujemo u varijablu. Bez nove ključne riječi objekt se kreira, ali ne vraća se referenca na objekt. Objekt poprima globalni opseg. Jedina referenca na ovaj objekt nalazi se kroz objekt prozora.
  • Zbunjeni? Neka nas bolje razumiju s primjerima. Ponovno razmotrimo gornji primjer. Novu ključnu riječ uklonili smo iz objektnih deklaracija. Rezultat je bila iznimka od nedefiniranih varijabli. To je zato što se bez nove ključne riječi novostvorena referenca predmeta ne vraća i stoga nije spremljena u naše varijable book1, book2 i book3. Kada smo pokušali pristupiti tim varijablama u metodi prikaza knjige, izuzeće je.

Kodirati:

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);

Izlaz:

U istom primjeru, ako modificiramo metodu knjige za prikaz kako bismo objektima pristupili kroz opseg prozora, dobit ćemo neočekivani izlaz.

Kodirati:

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);

Izlaz:

Kao vježbu, napravite mali brainstorming da bismo shvatili zašto dobivamo ovaj rezultat!

Opseg-sigurni konstruktori

Ugrađeni konstruktori u JavaScript-u konstruktori su sigurni za opseg. Ne stvaraju globalno obuhvaćene varijable kada se pozivaju bez nove ključne riječi. Stoga se ti objekti mogu sigurno stvoriti sa ili bez nove ključne riječi.

Kodirati

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
)

Da, i vi možete stvoriti konstruktore sigurne za opseg koji definiraju korisnici. Nastavite, stvoriti konstruktor siguran za naše knjige u gornjem primjeru.

Zaključak

Ovaj je članak dao detaljnu demonstraciju JavaScript konstruktora. To također pomaže u razumijevanju rada JavaScripta. Ključna stvar koja se ovdje mora zapamtiti je da iako tehnički ne postoje klase u JavaScript-u, metode i prototipovi pružaju sličnu funkcionalnost na raspolaganju programeru. I da, nova ključna riječ je važna.

Preporučeni članci

Ovo je vodič za Constructor u JavaScriptu. Ovdje smo raspravljali o njegovim vrstama i važnim metodama s Kako stvoriti konstruktor sigurnog za opseg Možete proći i naše dane članke da biste saznali više -

  1. Što Javascript može učiniti?
  2. Što je JavaScript?
  3. Kako instalirati JavaScript
  4. Destruktor na Javi
  5. Regex funkcije u Pythonu (primjer)
  6. Primjeri ove ključne riječi
  7. Rad i pravila instanceOf u Javi s primjerom