From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../reference/classes/constructor/index.html | 119 +++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 files/uk/web/javascript/reference/classes/constructor/index.html (limited to 'files/uk/web/javascript/reference/classes/constructor') diff --git a/files/uk/web/javascript/reference/classes/constructor/index.html b/files/uk/web/javascript/reference/classes/constructor/index.html new file mode 100644 index 0000000000..488a9c1829 --- /dev/null +++ b/files/uk/web/javascript/reference/classes/constructor/index.html @@ -0,0 +1,119 @@ +--- +title: Конструктор +slug: Web/JavaScript/Reference/Classes/constructor +tags: + - Classes + - ECMAScript6 + - JavaScript +translation_of: Web/JavaScript/Reference/Classes/constructor +--- +
{{jsSidebar("Classes")}}
+ +

Метод constructor — це особливий метод, призначений для створення й започаткування (ініціалізації) новоствореного примірника класу.

+ +

Синтаксис

+ +
constructor([аргументи]) { … }
+ +

Опис

+ +

Клас може мати лише один метод з іменем «constructor». Спроба оголосити декілька методів «constructor» для одного класу матиме наслідком помилку {{jsxref("Global_Objects/SyntaxError", "SyntaxError")}}.

+ +

Метод constructor може звернутися до однойменного методу батьківського класу (надкласу) через ключове слово {{jsxref("Operators/super", "super")}}.

+ +

За відсутності оголошеного методу constructor буде використано типовий започаткувач (конструктор).

+ +

Приклади

+ +

Використання методу constructor

+ +

Цей шмат коду взято з classes sample (переглянути наживо):

+ +
class Square extends Polygon {
+  constructor(length) {
+    // Наступний рядок здійснює виклик успадкованого від Polygon
+    // конструктора, передаючи до нього власні параметри.
+    super(length, length);
+
+    // Завважте, що в класах-нащадках виклик super() завжди має передувати
+    // найпершому звертанню до this. Інакше матимете помилку.
+    this.name = 'Square';
+  }
+
+  get area() {
+    return this.height * this.width;
+  }
+
+  set area(value) {
+    this.area = value;
+  }
+}
+ +

Інший приклад

+ +

Погляньте також на цей приклад:

+ +
class Polygon {
+    constructor() {
+        this.name = "Polygon";
+    }
+}
+
+class Square extends Polygon {
+    constructor() {
+        super();
+    }
+}
+
+let newInstance = new Square();
+console.log(newInstance.name);  // виводить "Polygon"
+ +

Типові конструктори

+ +

Якщо метод constructor не оголошено, буде використано типовий конструктор. Для первинного класу (що не успадковує інших) то є метод з порожнім тілом:

+ +
constructor() {}
+
+ +

Натомість для вторинного класу (що успадковує якийсь інший клас) типовим конструктором є такий:

+ +
constructor(...args) {
+  super(...args);
+}
+ +

Специфікації

+ + + + + + + + + + + + + + + + + + + +
СпецифікаціяСтатусКоментар
{{SpecName('ES6', '#sec-static-semantics-constructormethod', 'Constructor Method')}}{{Spec2('ES6')}}Первинне визначення.
{{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}}{{Spec2('ESDraft')}} 
+ +

Підтримка веб-переглядачами

+ + + +

{{Compat("javascript.classes.constructor")}}

+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf