prototypy i dziedziczenie javascript [duplikat]

Sep 09 2020

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

ScottMarcus Sep 09 2020 at 20:27

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.

Geuis Sep 09 2020 at 20:28

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__.