Szukaj…
Uwagi
Funkcje konstruktora są właściwie zwykłymi funkcjami, nie ma w nich nic specjalnego. To tylko new
słowo kluczowe powoduje specjalne zachowanie pokazane w powyższych przykładach. W razie potrzeby funkcje konstruktora można w dalszym ciągu wywoływać jak funkcję zwykłą, w takim przypadku należy jawnie powiązać this
wartość.
Deklaracja funkcji konstruktora
Funkcje konstruktora to funkcje zaprojektowane do budowy nowego obiektu. Wewnątrz funkcji konstruktora, słowo this
odnosi się do nowo utworzonego obiektu których wartości mogą być przypisany. Funkcje konstruktora automatycznie „zwracają” ten nowy obiekt.
function Cat(name) {
this.name = name;
this.sound = "Meow";
}
Funkcje konstruktora są wywoływane przy użyciu new
słowa kluczowego:
let cat = new Cat("Tom");
cat.sound; // Returns "Meow"
Funkcje konstruktora mają również właściwość prototype
która wskazuje na obiekt, którego właściwości są automatycznie dziedziczone przez wszystkie obiekty utworzone za pomocą tego konstruktora:
Cat.prototype.speak = function() {
console.log(this.sound);
}
cat.speak(); // Outputs "Meow" to the console
Obiekty tworzone przez funkcje konstruktora mają również specjalną właściwość na swoim prototypie zwaną constructor
, która wskazuje na funkcję użytą do ich utworzenia:
cat.constructor // Returns the `Cat` function
Obiekty utworzone przez funkcje konstruktora są również uważane za „instancje” funkcji konstruktora przez operator instanceof
:
cat instanceof Cat // Returns "true"