586
Rozdział 13
Dokładne spojrzenie na obiekty
name: "Burek"
breed: "mieszaniec"
weight: 20
Dog
bark()
name: "Dino"
breed: "pudel"
weight: 16
Dog
bark()
name: ".ieâ",
breed: "chihuahua",
weight: 4
Dog
bark()
function bark() {
// kod metody bark
}
function bark() {
// kod metody bark
}
function bark() {
// kod metody bark
}
function Dog(name, breed, weight) {
this.name = name;
this.breed = breed;
this.weight = weight;
bark = function() {
if (this.weight > 10) {
console.log(this.name + ” szczeka hau!”);
} else {
console.log(this.name + ” szczeka hiauu!”);
}
};
}
A tu każdy
z obiektów ma
własną referencję
do metody bark.
Tu mamy trzy odrębne
obiekty psów, z których
każdy ma swoje własne
właściwości.
Każdy pies może mieć ten sam zestaw
właściwości, których wartości będą
różne dla każdego psa.
var fido = new Dog(”Burek”, ”mieszaniec”, 20);
var fluffy = new Dog(”Dino”, ”pudel”, 16);
var spot = new Dog(”Kieï”, ”chihuahua”, 4);
A nawet lepiej, we wszystkich
psach używamy dokładnie tego
samego kodu.
I każdy pies jest
wyposażony w metodę bark.
Ale chwileczkę, każdy
z tych obiektów ma
swoją własną, niezależną
funkcję bark. Każda
z nich robi dokładnie
to samo, jednak każdy
z psów ma własną kopię
tej metody.
A zatem, z punktu widzenia
kodu, kod metody jest
wielokrotnie używany,
jednak wygląda na to,
że w trakcie wykonywania
kodu każdy z psów będzie
dysponował powtarzającą
się kopią tej samej funkcji.
Ponowna analiza konstruktorów: wielokrotnie
używamy kodu, ale czy robimy to efektywnie?
Czy pamiętasz konstruktor
Dog
, który napisaliśmy w poprzednim rozdziale?
Przyjrzyjmy się mu jeszcze raz i przypomnijmy, co zyskujemy, kiedy go stosujemy.
A zatem, korzystając z konstruktora, zyskujemy miły, powtarzalny obiekt psa, którego
zawartość możemy dostosowywać; możemy także wykorzystywać metody zdefiniowane
w tym obiekcie (w naszym przypadku jest to tylko jedna metoda,
bark
). Co więcej,
konstruktor przekaże każdemu psu dokładnie ten sam kod, co może nam zaoszczędzić
bardzo wiele trudu, w przypadku gdyby w przyszłości coś się zmieniło. Wszystko
świetnie, tylko zobaczmy, co się stanie w trakcie działania skryptu, kiedy zostanie
wykonany poniższy fragment kodu.
Powyższy kod powoduje utworzenie trzech obiektów psów. Zastosujmy nasze nowe
diagramy, aby pokazać, jak one wyglądają.
jesteś tutaj
587
Stosowanie prototypów
Przeglądarka
Hej! Ty tam!
Zdominowałem rynek
psów, a stało się to dzięki Twojemu
konstruktorowi Dog. Zobacz sam…
Gdyby to było
urządzenie mobilne,
już byś je „zabił”.
Zabijasz nas tymi
wszystkimi metodami, które
tworzysz. Zaraz zabraknie nam
pamięci, a wtedy zabawa się
skończy.

Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.