Dědičnost v jazyce JavaScript

Dědičnost je důležitý koncept v objektově orientovaném programování. Při klasické dědičnosti se metody ze základní třídy kopírují do třídy odvozené.

V jazyce JavaScript je dědičnost podporována pomocí objektu prototyp. Někdo tomu říká „prototypová dědičnost“ a někdo „delegování chování“.

Podívejme se, jak můžeme v jazyce JavaScript dosáhnout funkčnosti podobné dědičnosti pomocí objektu prototypu.

Začněme třídou Person, která obsahuje vlastnost FirstName & LastName, jak je uvedeno níže.

Ve výše uvedeném příkladu jsme definovali třídu Person (funkci) s vlastnostmi FirstName & LastName a také jsme do jejího objektu prototype přidali metodu getFullName.

Nyní chceme vytvořit třídu Student, která dědí od třídy Person, abychom nemuseli znovu definovat FirstName, LastName a metodu getFullName() ve třídě Student. Následuje třída Student, která dědí třídu Person.

Všimněte si, že jsme třídu Student.prototype nastavili na nově vytvořený objekt osoby. Klíčové slovo new vytvoří objekt třídy Person a také přiřadí objekt Person.prototype prototypu nového objektu a nakonec přiřadí nově vytvořený objekt objektu Student.prototype. Volitelně lze také přiřadit Person.prototype objektu Student.prototype.

Nyní můžeme vytvořit objekt Student, který využívá vlastnosti a metody objektu Person, jak je znázorněno níže.

Takto můžeme implementovat dědičnost v jazyce JavaScript.