prototypy i dziedziczenie javascript [duplikat]
Moje pytanie brzmi: Object jest ostatni w łańcuchu prototypów, wszystkie obiekty dziedziczą z niego właściwości i metody, w jaki sposób dziedziczą metody z Function.prototype, dlaczego Object.__proto__ === Function.prototype// prawda, dlaczego Object.__proto__nie jest null.
Odpowiedzi
Podstawy Objectw JavaScript muszą mieć sposób na utworzenie instancji, więc wymaga prototypeobiektu do pomocy w wierszach takich jak ta:
let myObj = new Object();
I dlatego Object.__proto__nie jest null.
FunctionObiekt to specjalny rodzaj obiektu, który ułatwia wystąpienia obiektu za pomocą konstruktora i kiedy stosować ten sposób jest znany jako „funkcji konstruktora”. Dlatego sensowne Objectjest dziedziczenie z Functionobiektu, aby można było tworzyć instancje obiektów.
Funkcja jest także przedmiotem. Więc dziedziczy również po Object.
Ale nie daj się zmylić Object.__proto__. To jest coś, co dodaje przeglądarka i nie jest częścią języka. Więc nie polegaj na nim ani nie używaj go.
Zasadniczo Function.prototypejest Object.__proto__.