znalazłem tej definicji tutaj: https://medium.com/javascript-scene/10-interview-questions-every-javascript-developer-should-know-6fa6bdf5ad95#.y0nc8kx34Różnice między klasycznym dziedziczenia i prototypowego dziedziczenia
Nie brzmi to niewygodne dla ciebie? Czy ta definicja ma sens? Dla mnie w obu przypadkach jest użycie konstruktora (z nowym można przesłonić zwracany obiekt, który jest wszystkim) i w obu przypadkach istnieje prototypowe dziedziczenie. Czy brakuje mi czegoś lub powyższa definicja nie jest prawdziwa?
* 3. Jaka jest różnica pomiędzy dziedziczeniem klasycznym a dziedziczeniem prototypowym?
Class Dziedziczenie: przypadki dziedziczą z klasy (jak plan - opis klasy), a także tworzyć relacje podklasy: hierarchicznych taksonomii klasy. Instancje są zazwyczaj tworzone za pomocą funkcji konstruktora za pomocą słowa kluczowego new
. Dziedziczenie klas może lub nie może używać słowa kluczowego class
z ES6.
Dziedziczenie prototypowe: instancje dziedziczą bezpośrednio z innych obiektów. Instancje są zwykle tworzone za pomocą funkcji fabrycznych lub Object.create()
. Instancje może składać się z wielu różnych przedmiotów, co pozwala na łatwą selektywną dziedziczenia. *
To nie jest w porządku. Nawet przy użyciu składni 'class' w ES6 nadal jest prototypowym dziedziczeniem. Różnica nie dotyczy składni deklaracji, ale sposobu jej działania w praktyce. – jfriend00
Cóż, mówi "zwykle". W JS nie ma klasycznego dziedziczenia, tylko składnia, która ukrywa dziedziczenie prototypu. – MinusFour
Wiem dobrze. Czuję, że autor tak naprawdę nie rozumie, jak działa dziedziczenie javascript i miesza je z innymi, bardziej typowymi dla OO językami, ale chcę mieć pewność, że niczego nie brakuje, zanim go obwiniam. –