Prototypy w JavaScript są podstawą dziedziczenia w tym języku. Każdy obiekt w JavaScript ma prototyp, z którego może dziedziczyć właściwości i metody. Mechanizm prototypów umożliwia obiektom JavaScript współdzielenie właściwości i metod, co jest wydajniejsze niż definiowanie tych samych metod dla każdej instancji obiektu. W tej lekcji przejdziemy przez różne przykłady, pokazując, jak używać prototypów do efektywnego tworzenia i zarządzania obiektami.
Przykład 1: Tworzenie i używanie prototypu
Opis: W tym przykładzie pokażemy, jak stworzyć prosty prototyp dla obiektu Car
i użyć go do tworzenia instancji różnych samochodów.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prototypy w JavaScript</title>
</head>
<body>
<h3>Prototypy w JavaScript - Przykład 1</h3>
<script>
// Definicja konstruktora Car
function Car(brand, model, year) {
this.brand = brand;
this.model = model;
this.year = year;
}
// Dodanie metody do prototypu Car
Car.prototype.getDetails = function() {
return `${this.brand} ${this.model} - rok produkcji: ${this.year}`;
};
// Tworzenie instancji obiektów Car
const car1 = new Car('Ford', 'Mustang', 1969);
const car2 = new Car('Audi', 'A4', 2020);
// Użycie metody z prototypu
console.log(car1.getDetails());
console.log(car2.getDetails());
// Wewnątrz funkcji getDetails, this odnosi się do instancji obiektu,
// na rzecz którego metoda została wywołana.
</script>
</body>
</html>
W tym przykładzie, metoda getDetails
jest dodana do prototypu Car
, co oznacza, że każda instancja obiektu Car
ma do niej dostęp bez potrzeby definiowania jej wielokrotnie dla każdej instancji.
Podsumowanie
Prototypy w JavaScript są potężnym narzędziem, które umożliwia dziedziczenie właściwości i metod między obiektami. Dzięki prototypom, można oszczędzić zasoby i ułatwić zarządzanie kodem poprzez współdzielenie metod między instancjami obiektów. W tej lekcji zaprezentowaliśmy podstawowy przykład użycia prototypów, jednak możliwości ich zastosowania są znacznie szersze i mogą obejmować bardziej złożone scenariusze dziedziczenia i konstrukcji obiektów.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs JavaScript od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.