Chociaż JavaScript jest językiem obiektowym, nie używa klas. Nie tworzysz "klasy" w JavaScript. Tworzysz "prototyp". JavaScript jest uważany za Prototype-based language.
Pierwszy przykład jest znany jako "object-literal notation" do tworzenia obiektu (którego podzestaw jest popularnie znany jako JSON). Analogią do tego w językach klasowych jest klasa "statyczna", w tym sensie, że w tym przypadku nie trzeba tworzyć nowej instancji obiektu; Po prostu "istnieje", po zdefiniowaniu. Nie można utworzyć instancji, użytkownik uzyska dostęp do członków apple
natychmiast, ponieważ apple
jest już obiektem. Jest to podobne do tworzenia anonimowej klasy w Javie. Można by użyć go w ten sposób:
alert(apple.getInfo());
W drugim przykładzie, podczas tworzenia prototypu (nie klasa), który może być używany do tworzenia wystąpień obiektów typu Apple
. Można używać go tak:
var redDelicious = new Apple("Red Delicious");
alert(redDelicious.getInfo());
JavaScript pozwala modyfikować i dodawać do prototypu obiektu, więc po ogłosił swój prototyp Apple
, można nadal dodawać lub zmieniać rzeczy o nim tak:
Apple.prototype.size = "7cm";
Po wykonaniu tej czynności wszystkie obiekty pochodzące z prototypu Apple
uzyskają pole size
. To jest podstawa do tego, jak PrototypeJS framework działa w celu modyfikacji natywnych obiektów JavaScript w celu dodania funkcjonalności poprawki &.
Należy pamiętać, że niewłaściwa praktyka polega na modyfikowaniu prototypu natywnych obiektów JavaScript, dlatego należy unikać robienia tego w miarę możliwości.
Tworzysz tylko obiekt, a nie klasę. – Gumbo