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"


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow