MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Zastosowanie konstruktorów funkcji

 

Zastosowaniem konstruktorów funkcji

Alternatywnie, możesz utworzyć obiekt w dwóch krokach:

  1. Zdefiniować typ obiektu poprzez napisanie konstruktora funkcji.
  2. Utworzyć natychmiast nowy obiekt.

Do zdefiniowania typu obiektu, tworzymy funkcję dla typu obiektu który określa nazwę, właściwości i metody. Na przykład, sądząc, że chcesz utworzyć typ obiektu dla samochodów. Chcesz ten typ obiektu nazwać car i chcesz posiadać właściwości do zrobienia make , model, year i color. Aby to zrobić, powinieneś napisać następującą funkcje:

function car(make, model, year) {
   this.make = make;
   this.model = model;
   this.year = year;
}

Uwaga, użycie this pozwala wartości własności obiektów opartych na wartościach pasujących do tej funkcji.

Teraz możesz utworzyć obiekt nazwany mycar w następującym kodzie:

mycar = new car("Eagle", "Talon TSi", 1993);

Instrukcja ta tworzy mycar i dopuszcza to do określonych wartości. Potem wartość mycar.make jest łańcuchem "Eagle", mycar.year jest liczba całkowita 1993, w ten sposób(?).

Utwórz jakis numer obiektu car nazywając new. Na przykład,

kenscar = new car("Nissan", "300ZX", 1992);
vpgscar = new car("Mazda", "Miata", 1990);

obiekt posiada właściwość która sama w sobie posiada jeszcze jeden obiekt. Na przykład; przypuśćmy, że zdefiniujemy obiekt nazwany następująco person:

function person(name, age, sex) {
   this.name = name
   this.age = age
   this.sex = sex
}

i potem przypisze nowe obiekty person jako następujące:

rand = new person("Rand McKinnon", 33, "M");
ken = new person("Ken Jones", 39, "M");

Potem znów zapisz definicję car włączając własne właściwości, które pobierają obiekt person, jak następująco:

function car(make, model, year, owner) {
   this.make = make;
   this.model = model;
   this.year = year;
   this.owner = owner
}

Błyskawiczne nowe obiekty, następnie użyjesz:

car1 = new car("Eagle", "Talon TSi", 1993, rand);
car2 = new car("Nissan", "300ZX", 1992, ken);

Uwaga, która zamiast przechodzić z wartości literału string lub integer kiedy są tworzone nowe obiekty, powyższe instrukcje dzieją się w obiektach rand i ken jako argumenty dla właściciela. Potem jeśli chcesz przekonać się do nazwy właściciela car2 , możesz zaakceptować następujące warunki:

car2.owner.name

Notuj wszystko co możesz zawsze dodać do poprzedniego zdefiniowanego obiektu. Na przykład, instrukcja

car1.color = "black"

dodawaj właściwości color do car1, i przydziel tą wartość "black." Jednakże, to nie wpływa na pozostałe obiekty. Dodaj nową właściwość do wszystkich obiektów tego samego typu, musisz mieć dodaną właściwość do definicji obiektu typu car.

Autorzy i etykiety dokumentu

 Autorzy tej strony: teoli, Mgjbot, Ptak82
 Ostatnia aktualizacja: teoli,