Costruttore in JavaScript - i suoi tipi e metodi importanti

Sommario:

Anonim

Introduzione al costruttore in JavaScript

Il metodo di costruzione in JavaScript è un metodo speciale utilizzato per creare e inizializzare oggetti all'interno di una classe. Questo è ciò che fa un costruttore in ogni linguaggio di programmazione. Ciò che rende il costruttore JavaScript diverso dagli altri è la libertà in termini di sintassi. Per capirlo meglio, apri semplicemente gli strumenti di sviluppo del browser (Ctrl / Cmd + Maiusc + C) e vai alla scheda Console nella finestra degli strumenti di sviluppo.

Sembra così in Chrome

Questo è il parco giochi per la maggior parte dei concetti relativi a JavaScript. Useremo questo parco giochi in questo articolo.

Tipi di costruttori in JavaScript

Esistono due tipi di costruttori in JavaScript

1. Costruttori integrati

Questi sono i costruttori prontamente disponibili forniti in bundle con l'ambiente di esecuzione. L'utente deve semplicemente invocare loro e viola, il lavoro è fatto. Esempi di costruttori integrati sono Array, Date e Object.

2. Costruttori definiti dall'utente

Questi sono i costruttori dichiarati e definiti dal programmatore da utilizzare in tutta l'applicazione. Un programmatore può anche definire proprietà e metodi dei propri tipi personalizzati. Sono anche noti come costruttori personalizzati. Per convenzione, tutti i costruttori JavaScript sono in maiuscolo. Questo per dire alla persona che li utilizza che questa funzione deve essere invocata usando la nuova parola chiave.

Come funzionano i costruttori in JavaScript?

Prima di esaminare la sintassi dei costruttori JavaScript, dobbiamo comprendere un concetto molto basilare di JavaScript:

  • La classe Object riassume nel contesto di questo articolo, ogni oggetto JavaScript viene creato dal costruttore Object. Se il valore fornito durante la creazione dell'oggetto è nullo o indefinito, il costruttore Oggetto creerà un oggetto vuoto. Altrimenti, creerà un oggetto del tipo definito durante la creazione dell'oggetto.
  • Ogni volta che viene dichiarato un nuovo oggetto del tipo di classe, la nuova parola chiave restituisce un riferimento all'oggetto appena creato. Si accede a quell'oggetto usando questa parola chiave all'interno del costruttore per inizializzare le proprietà dell'oggetto.
  • Anche se tecnicamente JavaScript non ha alcuna classe ma ha costruttori e prototipi per offrire funzionalità simili. In ECMAScript 2015, il concetto di classi è stato introdotto in JavaScript. Questa era semplicemente un'aggiunta sintattica all'eredità esistente basata su prototipo e non ha aggiunto nuove funzionalità al linguaggio.

Sintassi ed esempi di costruttore in Javascript

1) Metodo del costruttore

Di seguito è riportato il metodo del costruttore. Questo metodo è utilizzato all'interno del prototipo della classe.

Sintassi

constructor((arguments))( … )

Codice

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

Produzione:

2) Costruttore di oggetti (costruttori integrati)

Il costruttore Object viene chiamato direttamente quando viene creato un oggetto della classe Object. Questo crea un oggetto di classe Object se i parametri null o non definiti vengono passati come argomenti. Altrimenti, viene creato un oggetto del tipo di parametri indicati.

Sintassi

new Object(( value ))

O

new Array(( value ))

O

new Date(( value ))

O

new String(( value ))

O

new Number(( value ))

O

new Boolean(( value ))

O

new Function(( value ))

O

new Error(( value ))

O

new RegExp(( value ))

e così via…

Codice:

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

Produzione:

3) Costruttori di array e date

In modo simile, i costruttori Array e Date possono anche essere utilizzati per creare oggetti dei rispettivi tipi.

Codice:

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

Produzione:

Codice:

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

Produzione:

Codice:

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

Produzione:

4) Costruttori personalizzati

Possiamo anche dichiarare e definire i nostri costruttori da utilizzare in tutta la nostra applicazione. Vediamo come raggiungere questo obiettivo.

Sintassi

function FunctionName((arguments))( … )

Codice

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

Produzione:

Importanza della nuova parola chiave

Ora ti starai chiedendo cosa succede se non utilizzo la nuova parola chiave? Posso omettere la nuova parola chiave? Bene, amico mio, no. L'uso della nuova parola chiave è molto essenziale.

  • I costruttori JavaScript sono funzioni regolari. Sono accompagnati da una nuova parola chiave per indicare al motore JavaScript che un nuovo oggetto deve essere costruito con le proprietà indicate. Senza la nuova parola chiave, creeresti semplicemente sempre più oggetti globali.
  • La nuova parola chiave restituisce un riferimento all'oggetto appena creato. Quindi archiviamo questo riferimento in una variabile. Senza la nuova parola chiave, l'oggetto viene creato, ma non viene restituito alcun riferimento all'oggetto. L'oggetto assume un ambito globale. L'unico riferimento a questo oggetto è tramite l'oggetto finestra.
  • Confuso? Cerchiamo di capire meglio con esempi. Considera di nuovo l'esempio sopra. Abbiamo rimosso la nuova parola chiave dalle dichiarazioni di oggetti. Il risultato è stato un'eccezione alle variabili non definite. Questo perché, senza la nuova parola chiave, il riferimento agli oggetti appena creati non è stato restituito e quindi non è stato memorizzato nelle nostre variabili book1, book2 e book3. Quando abbiamo tentato di accedere a queste variabili nel metodo del display book, viene generata l'eccezione.

Codice:

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

Produzione:

Nello stesso esempio, se modifichiamo il metodo del libro di visualizzazione per accedere agli oggetti attraverso l'ambito della finestra, otteniamo un output non previsto.

Codice:

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

Produzione:

Ora, come esercizio, fai un po 'di brainstorming per capire perché otteniamo questo risultato!

Costruttori sicuri

I costruttori integrati in JavaScript sono costruttori sicuri per l'ambito. Non creano variabili con ambito globale quando vengono chiamate senza una nuova parola chiave. Pertanto, questi oggetti possono essere creati in modo sicuro con o senza una nuova parola chiave.

Codice

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
)

Sì, anche tu puoi creare costruttori sicuri per l'ambito definiti dall'utente. Continua, crea un costruttore sicuro per i nostri libri nell'esempio sopra.

Conclusione

Questo articolo ha fornito una dimostrazione approfondita dei costruttori JavaScript. Questo aiuta anche a comprendere il funzionamento di JavaScript. La cosa fondamentale da ricordare qui è che sebbene tecnicamente non ci siano classi in JavaScript, i metodi e i prototipi forniscono funzionalità simili a disposizione dello sviluppatore. E sì, la nuova parola chiave è importante.

Articoli consigliati

Questa è stata una guida per Costruttore in JavaScript. Qui discutiamo i suoi tipi e metodi importanti con Come creare un costruttore sicuro per l'ambito Puoi anche consultare i nostri articoli per saperne di più-

  1. Cosa può fare Javascript?
  2. Che cos'è JavaScript?
  3. Come installare JavaScript
  4. Distruttore in Java
  5. Funzioni Regex in Python (esempio)
  6. Esempi di questa parola chiave
  7. Funzionamento e regole di istanza di Java con esempio