objavlenie_klassa

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
objavlenie_klassa [2023/12/14 18:17]
tro
objavlenie_klassa [2023/12/14 20:06] (текущий)
tro [Успадкування класів extends]
Строка 44: Строка 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>
 ====== Обявление статического метода ====== ====== Обявление статического метода ======
Строка 64: Строка 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;
 +}
 +
 + get age(newValue){
 +return this.#age;
 +}
 +
 +}
 +</code>
 +
 +<code>
 +Comment.age = 10;
 +Console.log(Comment.age);
 +</code>
 +====== Успадкування класів extends ======
 +  * **extends** - вказання що клас повинен наслідувати з іньшого класу
 +  * **super()** - всередині класу що буде приймате наслідувати вказує що сопчатку треба виконати супер-контруктор. Конструктор батьківського класу
 +<code>
 +//--Батьківкий клас
 +class Animal {
 +  constructor(name, age, pows){
 +    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');
 +  }
  
-const myArray = new numberArray(2,3,5)+  }
 </code> </code>
  • /sites/data/attic/objavlenie_klassa.1702577857.txt.gz
  • Последнее изменение: 2023/12/14 18:17
  • tro