Ereditare i metodi di un'altra classe utilizzando la parola chiave estendi in javascript

Ereditare i metodi di un'altra classe utilizzando la parola chiave estendi in javascript
Con le funzionalità aggiuntive e la sintassi della classe più semplice, ES6 ha reso JavaScript molto più semplice. Prima di questo, l'eredità di Javascript era resa possibile con l'oggetto.Proprietà prototipo che era molto diversa e complessa rispetto a Java e C ++ e altri linguaggi di programmazione simili.

In questo post, esamineremo eredità In JavaScript usando il "si estende"Parola chiave in JavaScript. Gli esempi aiutano a afferrare fortemente il concetto, quindi faremo anche esempi. Iniziamo.

Cosa è eredità?

Come qualsiasi altro linguaggio di programmazione, l'eredità è un concetto molto importante nella programmazione orientata agli oggetti JavaScript. La definizione più semplice di eredità è quando i metodi e gli attributi di una classe genitore o di una classe di base vengono copiati o ereditati in classi derivate o figlio. È molto utile per questo motivo siamo in grado di ottenere la riusabilità del codice. Riutilizzabilità del codice significa riutilizzare attributi/proprietà e metodi di una classe in un'altra classe appena creata.

Estende la parola chiave

Ora che abbiamo esaminato quale sia l'eredità. Discutiamo di come raggiungere questo obiettivo. Come menzionato in precedenza, eravamo soliti ottenere l'eredità tramite oggetto.prototipo che si chiama eredità prototipica. Tuttavia, è stato seguito un approccio più facile che stava utilizzando la parola chiave estensione.

La funzione dell'estensione delle parole chiave viene utilizzata per creare una classe derivata/classe figlio da una classe genitore/classe base. La classe figlio può ereditare qualsiasi classe e quella classe diventa la classe genitore. Quando ereditiamo, nella classe figlio tutti i metodi e gli attributi saranno ereditati dalla classe genitore.

Sintassi:

Classe Childclass estende la Classe per pareti;

Va tenuto presente che funziona solo nella versione ECMAScript 2015 (ES6).

Quale browser supporta la parola chiave "estendi"?

Ora vediamo quali browser supportano la parola chiave "estendi".

Cromo Bordo Firefox Safari musica lirica
49.0 13.0 45.0 9.0 36.0

Ora che abbiamo coperto la teoria dell'eredità e la parola chiave "estendi" ci lasciamo implementare in javascript.

Esempio:

classanimalname
costruttore (nome)
Questo.AnimalName = name;

presente()
return'name: ' + questo.AnimalName;


classanimalextendendsanimalname
costruttore (nome, quantità)
super (nome);
Questo.quantità = quantità;

WhatAnimal ()
ritorno questo.presente () + "quantità:" + questo.quantità;


Const animale = new animale ("pollo", 5);
Avviso (animale.whanimal ());

In questo esempio, abbiamo una classe genitore "AnimalName" in cui impostiamo il nome dell'animale. Ha un metodo con il nome "presente ()". Abbiamo un altro "animale" di classe che estende il "nome animale". Significa. Abbiamo un metodo nella classe "animale" con il nome di "whanimal ()". In questo, stiamo ereditando il metodo di classe "AnimalName" "Present" e quindi creato un'istanza della classe "animale". Ora quando avvisiamo la funzione whanimal (), funzionerà correttamente.

Vale la pena notare che abbiamo usato la parola chiave super () per fare riferimento alla classe genitore nell'esempio sopra. Quando chiamiamo il metodo Super (), in realtà chiamiamo il costruttore della classe genitore e possiamo accedere a tutti i metodi e proprietà del genitore grazie alla parola chiave super.

Utilizzo di getter e setter in eredità

Quando usiamo lezioni e l'eredità, è quasi impossibile non usare getter e setter. È molto utile recuperare o aggiornare le proprietà prima di restituire o impostare tali proprietà.

La parola chiave "get" viene utilizzata per recuperare o ottenere una proprietà. La parola chiave "set" viene utilizzata per aggiornare o impostare alcune proprietà.

Per esempio:

classanimalname
costruttore (nome)
Questo._animalname = nome;

get getanimalname ()
ritorno questo._animalname;

Set setAnimalName (nam)
Questo._animalName = nam;

presente()
return'name: ' + questo._animalname;


classanimalextendendsanimalname
costruttore (nome, quantità)
super (nome);
Questo.quantità = quantità;

WhatAnimal ()
ritorno questo.getanimalname;


const animale = new animale ("pollo", 5);
Avviso (animale.whanimal ());

In questo esempio, abbiamo usato il carattere di sottolineatura perché volevamo separare Getter/Setter dall'attributo/proprietà effettiva per una migliore comprensione. Questo esempio è identico a quello precedente, con l'eccezione che la classe "AnimalName" ora ha un getter e un setter. Recuviamo il nome dell'animale dalla classe genitore attraverso il metodo Get che è "getanimalname".

Possiamo anche impostare una proprietà allo stesso modo aggiungendo solo un'altra riga usando il codice sopra.

classanimalname
costruttore (nome)
Questo._animalname = nome;

get getanimalname ()
ritorno questo._animalname;

Set setAnimalName (nam)
Questo._animalName = nam;

presente()
return'name: ' + questo._animalname;


classanimalextendendsanimalname
costruttore (nome, quantità)
super (nome);
Questo.quantità = quantità;

WhatAnimal ()
ritorno questo.getanimalname;


const animale = new animale ("pollo", 5);
animale.setAnimalName = "Cow";
Avviso (animale.whanimal ());

L'output verrà ora aggiornato a "mucca".

Conclusione

L'eredità è uno dei concetti fondamentali della programmazione orientata agli oggetti e la definizione di eredità può essere definita come quando i metodi e gli attributi di un genitore o di una classe base vengono copiati/ereditati in un bambino o una classe derivata e possono essere raggiunti usando la parola chiave si estende In JavaScript.

Se leggi a fondo questo articolo, sono abbastanza sicuro che voi ragazzi abbia un'idea di come utilizzare la parola chiave estende nell'accesso ai metodi e agli attributi della classe principale in JavaScript. Abbiamo spiegato l'ereditarietà, estendere la parola chiave, impostare la parola chiave, ottenere parole chiave e quale browser supporta la parola chiave estendi. Eredità prototipo, come affermato all'inizio di questo articolo è obsoleto e complesso. Estendere è più semplice e simile ad altre lingue come Java, C ++, ecc.