Sissejuhatus konstruktorisse JavaScriptis
Ehitaja meetod JavaScriptis on spetsiaalne meetod, mida kasutatakse klassis objektide loomiseks ja lähtestamiseks. Seda teeb konstruktor igas programmeerimiskeeles. See, mis JavaScripti konstruktorit teistest eristab, on süntaksi osas vabadus. Selle paremaks mõistmiseks avage lihtsalt brauseri arendaja tööriistad (Ctrl / Cmd + Shift + C) ja minge arendaja tööriistade aknas vahekaardile Konsool.
See näeb Chrome'is välja selline
See on enamiku JavaScriptiga seotud mõistete mänguväljak. Me kasutaksime seda mänguvälja kogu selle artikli vältel.
Ehitajate tüübid JavaScriptis
JavaScriptis on kahte tüüpi konstruktoreid
1. Sisseehitatud konstruktorid
Need on hõlpsasti kättesaadavad konstruktorid, mis on komplekteeritud täitmiskeskkonnaga. Kasutaja peab lihtsalt neid kutsuma ja vioola, töö on tehtud. Sisseehitatud konstruktorite näideteks on massiiv, kuupäev ja objekt.
2. Kasutaja määratletud konstruktorid
Need on konstruktorid, kelle programmeerija on deklareerinud ja määratlenud ning mida kasutatakse kogu rakenduse vältel. Programmeerija saab määratleda ka oma kohandatud tüüpide atribuudid ja meetodid. Neid tuntakse ka kohandatud konstruktoritena. Tavapäraselt on kõik JavaScripti konstruktorid lauseväljased. Selle eesmärk on öelda neid kasutavale inimesele, et see funktsioon tuleb käivitada uue märksõna abil.
Kuidas ehitajad JavaScriptis töötavad?
Enne kui vaatame JavaScripti konstruktorite süntaksit, peame mõistma JavaScripti väga põhimõtet -
- Objektiklass teeb selle artikli kontekstis kokkuvõtte, iga JavaScripti objekti loob objekti konstruktor. Kui objekti loomisel antud väärtus on null või määramatu, loob objekti ehitaja tühja objekti. Vastasel juhul loob see objekti loomisel määratletud tüüpi objekti.
- Iga kord, kui kuulutatakse välja uus klassitüübi objekt, tagastab uus märksõna viite vastloodud objektile. Objektile pääseb juurde selle märksõna abil konstruktori sees, et lähtestada objekti omadused.
- Ehkki tehniliselt pole JavaScriptil ühtegi klassi, kuid samasuguse funktsionaalsuse saavutamiseks on sellel konstruktoreid ja prototüüpe. ECMAScript 2015 tutvustas klasside mõistet JavaScriptis. See oli lihtsalt süntaktiline lisa olemasolevale prototüüpipõhisele pärandile ega lisanud keelele ühtegi uut funktsionaalsust.
Süntaks ja näited konstruktorist Javascriptis
1) Ehitaja meetod
Allpool on toodud konstruktori meetod. Seda meetodit kasutatakse klassi prototüübis.
Süntaks
constructor((arguments))( … )
Kood
class Employee(
constructor(id, name)(
this.id = id;
this.name = name;
))
var emp1 = new Employee(123, "John");
console.log(emp1.name);
Väljund:
2) objektiehitaja (sisseehitatud konstruktorid)
Objekti konstruktorit kutsutakse otse, kui luuakse klassi Objekt objekt. See loob klassi Object objekti, kui argumentidena antakse null- või määratlemata parameetreid. Vastasel korral luuakse antud parameetrite tüüpi objekt.
Süntaks
new Object(( value ))
Või
new Array(( value ))
Või
new Date(( value ))
Või
new String(( value ))
Või
new Number(( value ))
Või
new Boolean(( value ))
Või
new Function(( value ))
Või
new Error(( value ))
Või
new RegExp(( value ))
ja nii edasi…
Kood:
var name = new Object("John");
var age = new Object(28);
console.log("Name : "+name+" & Age : "+age);
Väljund:
3) massiivi ja kuupäeva konstruktorid
Sarnasel viisil saab massiivi ja kuupäeva konstruktoreid kasutada ka vastavat tüüpi objektide loomiseks.
Kood:
var alphabets = new Array('Apple', 'Ball', 'Cat');
console.log(alphabets);
Väljund:
Kood:
var now = new Date();
console.log(now);
Väljund:
Kood:
var err = new Error("A user-defined error has occurred.");
console.log(err);
Väljund:
4) kohandatud konstruktorid
Samuti võime deklareerida ja määratleda oma konstruktorid, mida kasutatakse kogu meie rakenduse vältel. Vaatame, kuidas seda saavutada.
Süntaks
function FunctionName((arguments))( … )
Kood
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äljund:
Uue märksõna tähtsus
Nüüd võite mõelda, mis juhtuks, kui ma ei kasuta uut märksõna? Kas ma võin uue märksõna ära jätta? Noh, mu sõber, ei. Uue märksõna kasutamine on väga oluline.
- JavaScripti konstruktorid on regulaarsed funktsioonid. Neile on lisatud uus märksõna, mis ütleb JavaScripti mootorile, et uus objekt tuleb ehitada antud omadustega. Ilma uue märksõnata looksite lihtsalt üha enam globaalseid objekte.
- Uus märksõna tagastab viite vastloodud objektile. Seejärel salvestame selle viite muutujasse. Ilma uue märksõnata objekt luuakse, kuid viidet objektile ei tagastata. Objektil on globaalne ulatus. Ainus viide sellele objektile on läbi aknaobjekti.
- Segaduses? Mõistagem näidetega paremini. Mõelge uuesti ülaltoodud näitele. Eemaldasime uue märksõna objektideklaratsioonidest. Tulemus oli erand määratlematutest muutujatest. Selle põhjuseks on asjaolu, et ilma uue märksõnata vastloodud objektide viidet ei tagastatud ega salvestatud meie muutujatesse book1, book2 ja book3. Kui üritasime neile muutujatele displeiraamatu meetodil juurde pääseda, visatakse erand välja.
Kood:
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äljund:
Samas näites, kui muudame kuvaraamatu meetodit, et pääseda objektidele akna ulatuse kaudu, saame eeldatava väljundi.
Kood:
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äljund:
Tehke nüüd treeninguna väike ajurünnak, et aru saada, miks me selle väljundi saame!
Ulatusohutud konstruktorid
JavaScripti sisseehitatud konstruktorid on ulatuskindlad konstruktorid. Nad ei loo globaalse ulatusega muutujaid, kui neid kutsutakse ilma uue märksõnata. Seega saab neid objekte turvaliselt luua uue märksõnaga või ilma.
Kood
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
)
Jah, ka teie saate luua kasutaja määratletud ulatuskindlaid konstruktoreid. Jätkake, looge ülaltoodud näites meie raamatutele ulatuskindel konstruktor.
Järeldus
See artikkel tutvustas JavaScripti konstruktorite põhjalikku tutvustamist. See aitab ka JavaScripti toimimisest aru saada. Siinkohal tuleb meeles pidada, et kuigi JavaScriptis tehniliselt pole klasse, pakuvad meetodid ja prototüübid arendaja käsutuses sarnast funktsionaalsust. Ja jah, uus märksõna on oluline.
Soovitatavad artiklid
See on juhend Konstruktorile JavaScriptis. Siin käsitleme selle tüüpe ja olulisi meetodeid teemaga Kuidas luua ulatuskindlat konstruktorit. Lisateabe saamiseks lugege ka meie antud artikleid -
- Mida Javascript teha saab?
- Mis on JavaScript?
- Kuidas JavaScripti installida?
- Hävitaja Java-s
- Regexi funktsioonid Pythonis (näide)
- Selle märksõna näited
- Toimimine ja Java reeglite reeglid näites