Konstruktor v JavaScript - njegove vrste in metode uvoza

Kazalo:

Anonim

Uvod v Constructor v JavaScript

Metoda konstruktorja v JavaScript je posebna metoda, ki se uporablja za ustvarjanje in inicializacijo predmetov v razredu. To počne konstruktor v vsakem programskem jeziku. Konstruktor JavaScript se razlikuje od drugih glede na skladnost. Če ga želite bolje razumeti, preprosto odprite orodja za razvijalce brskalnika (Ctrl / Cmd + Shift + C) in pojdite na zavihek Console v oknu z orodji za razvijalce.

V Chromeu je videti tako

To je igrišče za večino konceptov, povezanih z JavaScript. V tem članku bomo uporabljali to igrišče.

Vrste konstruktorjev v JavaScript

V JavaScript obstajata dve vrsti konstruktorjev

1. Vgrajeni konstruktorji

To so lahko dostopni konstruktorji, ki so priloženi okolju izvajanja. Uporabnik jih mora preprosto priklicati in prekršiti, delo je končano. Primeri vgrajenih konstruktorjev so Array, Date in Object.

2. Uporabniško definirani konstruktorji

To so konstruktorji, ki jih programer izjavi in ​​opredeli, da jih bo uporabljal v celotni aplikaciji. Programer lahko definira tudi lastnosti in metode svojih vrst po meri. Znani so tudi kot konstruktorji po meri. Po dogovoru so vsi konstruktorji JavaScript stavki pod črto. S tem naj bi osebi, ki jih uporablja, sporočil, da mora to funkcijo uporabiti z novo ključno besedo.

Kako konstruktorji delujejo v JavaScriptu?

Preden si pogledamo skladnjo konstruktorjev JavaScript, moramo razumeti zelo osnovni koncept JavaScript -

  • Razred Object povzema v okviru tega članka, vsak objekt JavaScript ustvari konstruktor Object. Če je podana vrednost med ustvarjanjem predmeta ničelna ali nedefinirana, bo konstruktor Object ustvaril prazen predmet. V nasprotnem primeru bo med ustvarjanjem predmeta ustvaril predmet, ki je definiran.
  • Kadar koli je prijavljen nov objekt vrste razreda, nova ključna beseda vrne sklic na novo ustvarjeni objekt. Do tega predmeta lahko dostopate s to ključno besedo znotraj konstruktorja, da inicializirate lastnosti predmeta.
  • Čeprav tehnično JavaScript nima nobenih razredov, ima pa konstruktorje in prototipe, ki prinašajo podobno funkcionalnost. V ECMAScript 2015 je bil koncept razredov predstavljen v JavaScript. To je bil preprosto skladenjski dodatek k obstoječemu dedovanju, ki temelji na prototipih, in jeziku ni dodal nobene nove funkcionalnosti.

Sintaksa in primeri konstruktorja v Javascript

1) Metoda konstruktorja

Spodaj je metoda konstruktorja. Ta metoda se uporablja znotraj prototipa razreda.

Sintaksa

constructor((arguments))( … )

Koda

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

Izhod:

2) Konstruktor objekta (vgrajeni konstruktorji)

Konstruktor Object se pokliče neposredno, ko se ustvari objekt razreda Objekt. To ustvari objekt razreda Objekt, če so kot argumenti podani null ali nedefinirani parametri. V nasprotnem primeru se ustvari objekt vrste danih parametrov.

Sintaksa

new Object(( value ))

Or

new Array(( value ))

Or

new Date(( value ))

Or

new String(( value ))

Or

new Number(( value ))

Or

new Boolean(( value ))

Or

new Function(( value ))

Or

new Error(( value ))

Or

new RegExp(( value ))

in tako naprej…

Koda:

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

Izhod:

3) Konstruktorji matrike in datumov

Na podoben način se lahko konstruktorji Array in Date uporabijo tudi za ustvarjanje predmetov ustreznih vrst.

Koda:

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

Izhod:

Koda:

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

Izhod:

Koda:

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

Izhod:

4) Konstruktorji po meri

Prav tako lahko izjavimo in definiramo svoje lastne konstruktorje, ki jih bomo uporabljali skozi našo aplikacijo. Poglejmo, kako je to mogoče doseči.

Sintaksa

function FunctionName((arguments))( … )

Koda

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

Izhod:

Pomen nove ključne besede

Zdaj se morda sprašujete, kaj če nove ključne besede ne uporabim? Ali lahko izpustim novo ključno besedo? No, prijatelj, ne. Uporaba nove ključne besede je zelo pomembna.

  • Konstruktorji JavaScript so redne funkcije. Priložena jim je nova ključna beseda, ki pove, da mehanizem JavaScript pove, da je treba z danimi lastnostmi zgraditi nov objekt. Brez nove ključne besede preprosto ustvarjate vedno več globalnih predmetov.
  • Nova ključna beseda vrne sklic na novo ustvarjeni objekt. Nato to referenco shranimo v spremenljivko. Brez nove ključne besede se objekt ustvari, vendar se noben sklic na predmet ne vrne. Predmet prevzame globalni obseg. Edini sklic na ta objekt je skozi okenski objekt.
  • Zmeden? Naj nas bolje razumejo s primeri. Znova razmislite o zgornjem primeru. Novo ključno besedo smo odstranili iz deklaracij predmeta. Rezultat je bila izjema od nedefiniranih spremenljivk. Razlog je, da brez nove ključne besede referenca na novo ustvarjenih predmetov ni bila vrnjena in zato ni bila shranjena v naših spremenljivkah book1, book2 in book3. Ko smo poskušali dostopati do teh spremenljivk v metodi prikaza knjige, je izjema.

Koda:

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

Izhod:

V istem primeru, če spremenimo način prikaza knjige za dostop do predmetov prek okenskega obsega, dobimo nepričakovani izhod.

Koda:

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

Izhod:

Zdaj kot vaja naredite malo brainstorminga, da ugotovimo, zakaj dobimo ta rezultat!

Obsega varni konstruktorji

Vgrajeni konstruktorji v JavaScript so varni konstruktorji. Ko ustvarijo novo ključno besedo, ne ustvarijo spremenljivk s splošnim obsegom. Tako lahko te predmete varno ustvarite z novo ali brez nove ključne besede.

Koda

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, tudi vi lahko ustvarite uporabniško definirane konstruktorje, varne glede na obseg. Nadaljujte, ustvarite konstruktor, varen za naše knjige, v zgornjem primeru.

Zaključek

Ta članek je podrobno predstavil konstruktorje JavaScript. To pomaga tudi pri razumevanju delovanja JavaScript. Ključna stvar, ki si jo je treba zapomniti, je, da čeprav tehnično ne obstajajo razredi v JavaScript, metode in prototipi nudijo podobne funkcije razvijalcem. In ja, nova ključna beseda je pomembna.

Priporočeni članki

To je vodnik za Constructor v JavaScript. Tukaj razpravljamo o njegovih vrstah in pomembnih metodah s Kako ustvariti konstruktor, ki je varen pred obsegom. Oglejte si tudi naše dane članke, če želite izvedeti več -

  1. Kaj lahko naredi Javascript?
  2. Kaj je JavaScript?
  3. Kako namestiti JavaScript
  4. Destruktor na Javi
  5. Funkcije Regex v Pythonu (primer)
  6. Primeri te ključne besede
  7. Delo in pravila instanceOf v Javi s Primerjem