objavlenie_klassa

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
objavlenie_klassa [2023/12/14 18:13]
tro
objavlenie_klassa [2023/12/14 20:06] (текущий)
tro [Успадкування класів extends]
Строка 10: Строка 10:
 } }
 </code> </code>
-По факту при возові **Comment** викликається конструктор.+По факту при возові обїекта **Comment** викликається функція конструктораТому туди можна передавати аргументи у влстивості
 <code> <code>
 class Comment { class Comment {
- constructor (text) {+ constructor (text,vot) {
   this.text = text;   this.text = text;
-  this.votesQty = 0;+  this.votesQty = vot; 
 +  this.any = 'any_text';
   }   }
      
Строка 23: Строка 24:
 } }
 </code> </code>
 +<code>
 +user1 = new Comment('igor',25);
 +</code>
 +
 ====== Объявление екземпляра класса ====== ====== Объявление екземпляра класса ======
 <code> <code>
Строка 39: Строка 44:
 <code> <code>
 Comment.prototype.constructor Comment.prototype.constructor
 +</code>
 +
 +====== Обявление статического властивості ======
 +Ця властивість буде доступна как свойство только классаи НЕ наледуются всеми єкземплярами класса. т.е. он будет доступен как свойство только самого класса
 +<code>
 +class Comment {
 +    constructor (text) {
 +     this.text = text;
 +     this.votesQty = 0;
 +     }
 +     
 +     static pi = 3.1415;
 +
 +   }
 +</code>
 +<code>
 +fdf = Comment.pi;
 </code> </code>
 ====== Обявление статического метода ====== ====== Обявление статического метода ======
Строка 59: Строка 81:
 </code> </code>
  
-====== Расширение других классов ======+====== Приватні властивості ====== 
 +Приватні властивості описувати зпочатку перед конструктором через знак **#** і звертатись до них також у середині класу.
 <code> <code>
-class numberArray extends Array +class Comment 
-    sum(){ +#maxSpeed = 300; 
-        return this.reduce((el,acc)=>acc+-el,0); + constructor (text,vot) { 
-    }+  this.text = text; 
 +  this.votesQty = vot; 
 +  this.any = 'any_text'; 
 +  } 
 +   
 +  ShowMaxSpeed() { 
 +   console.log(#maxSpeed); 
 +  } 
 +
 +</code> 
 +<code> 
 +user1 = new Comment('igor',25)
 +user1.ShowMaxSpeed(); 
 +</code> 
 +====== Геттери (get) та Сеттери (set) ====== 
 +В більшості вони потрібні тільки для приватних властивостей, але технічно можна робити і не для приватних властивостей 
 +<code> 
 +class Comment { 
 +#age= 30; 
 + constructor (text,vot
 +  this.text = text
 +  this.votesQty = vot; 
 +  this.any = 'any_text'; 
 +  } 
 +   
 + set age(newValue){ 
 +this.#age = newValue;
 } }
  
-const myArray new numberArray(2,3,5)+ get age(newValue){ 
 +return this.#age; 
 +
 + 
 +
 +</code> 
 + 
 +<code> 
 +Comment.age 10; 
 +Console.log(Comment.age); 
 +</code> 
 +====== Успадкування класів extends ====== 
 +  * **extends** - вказання що клас повинен наслідувати з іньшого класу 
 +  * **super()** - всередині класу що буде приймате наслідувати вказує що сопчатку треба виконати супер-контруктор. Конструктор батьківського класу 
 +<code> 
 +//--Батьківкий клас 
 +class Animal { 
 +  constructor(nameagepows){ 
 +    this.name = name; 
 +    this.age = age; 
 +    this.paws = pows; 
 +  } 
 + 
 +sleep(){ 
 +  console.log('zzzz'
 +
 +
 + 
 + 
 + 
 +//--наслідумо у класс Dog властивості та методи (по факту методи не копіюються але система по ланцюжку шука у батьківських поки не знайде) з класу Animal  
 +class Dog extends Animal { 
 +  constructor (name, age, pows){ 
 +    super(name, age, pows); 
 +    this.typevoice = ''; 
 +  } 
 + 
 +  satHello(){ 
 +    console.log('PowPow')
 +  } 
 + 
 +  }
 </code> </code>
  • /sites/data/attic/objavlenie_klassa.1702577587.txt.gz
  • Последнее изменение: 2023/12/14 18:13
  • tro