Menu
CoddyTech

Funkcje konstruktora

Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 4 z 56.

Funkcje konstruktora to specjalne funkcje w JavaScript, które pozwalają tworzyć wiele obiektów o tej samej strukturze i zachowaniu.

Zdefiniuj funkcję konstruktora dla osoby:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

Utwórz nowy obiekt Person za pomocą konstruktora:

const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);

Wywołaj konstruktor za pomocą słowa kluczowego new. new tworzy pusty obiekt, uruchamia funkcję, ustawiając this tak, aby wskazywało na ten obiekt, i zwraca obiekt, więc this.name = name zapisuje imię w obiekcie john. Zgodnie z konwencją nazwy konstruktorów zaczynają się wielką literą (Person, Car), aby pokazać, że należy je wywoływać za pomocą new.

Bez new wywołanie Person("John", 30) jest zwykłym wywołaniem funkcji: nie powstaje żaden obiekt, this jest obiektem globalnym (lub ma wartość undefined w trybie ścisłym), a wywołanie zwraca undefined.

Po wykonaniu powyższego kodu john jest obiektem o właściwościach:

// Obiekt john zawiera:
{
  name: "John",
  age: 30,
  greet: function() { return "Hello, my name is John"; }
}

Uzyskuj dostęp do właściwości i wywołuj metody:

console.log(john.name); // Wyświetla: John
console.log(john.greet()); // Wyświetla: Hello, my name is John
challenge icon

Wyzwanie

  1. Utwórz funkcję konstruktora o nazwie Book, która przyjmuje trzy argumenty:
  • title (łańcuch znaków)
  • author (łańcuch znaków)
  • pages (liczba)

Funkcja powinna ustawić je jako właściwości utworzonego obiektu. 

    2. Dodaj metodę o nazwie getSummary, która zwraca ciąg znaków zawierający informacje o książce: this.title + " was written by " + this.author + " and has " + this.pages + " pages";

Spróbuj swoich sił

// TODO: Utwórz funkcję konstruktora o nazwie Book, która przyjmuje trzy argumenty (title, author, pages)


// TODO: Ustaw je jako właściwości utworzonego obiektu


// TODO: Dodaj metodę getSummary, która zwraca ciąg znaków zawierający informacje o książce.
// Na przykład: Harry Potter was written by Rowling and has 500 pages


// Nie modyfikuj poniższego kodu
const inputTitle = inp[0];          // Pierwszy wiersz: tytuł książki
const inputAuthor = inp[1];         // Drugi wiersz: autor  
const inputPages = parseInt(inp[2]);// Trzeci wiersz: liczba stron

const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator JavaScript online