objavlenie_klassa

Это старая версия документа!


Объявление класса

class Comment {
text='igor';
age=25;
}
user1 = new Comment();
}

По факту при возові обїекта Comment викликається функція конструктора. Тому туди можна передавати аргументи у влстивості

class Comment {
 constructor (text,vot) {
  this.text = text;
  this.votesQty = vot;
  this.any = 'any_text';
  }
  
  upvote() {
   this.votesQty += 1;
  }
}
user1 = new Comment('igor',25);

Объявление екземпляра класса

const firstcomment = new Comment('First comment')

Визов метода класса в єкземпляре класса

 firstcomment.upvote()

Проверка принадлежности єксемпляра класса к классу

firstcomment instanceof Comment
firstcomment instanceof Object)

Получение доступа к прототипу класса из єкземпляра класса

Comment.prototype.constructor

Обявление статического метода

єтот метод будет доступен как свойство класса Comment и НЕ наледуются всеми єкземплярами класса. т.е. он будет доступен как метод только самого класса

class Comment {
    constructor (text) {
     this.text = text;
     this.votesQty = 0;
     }
     
     static mergeComment (first, second) {
        return `${first} ${second}`;
     }

   }
Comment.mergeComment("asfsdf","sfdgdfg")

Расширение других классов

class numberArray extends Array {
    sum(){
        return this.reduce((el,acc)=>acc+-el,0);
    }
}

const myArray = new numberArray(2,3,5)

Приватні властивості

Приватні властивості описувати зпочатку перед конструктором через знак # і звертатись до них також у середині класу.

class Comment {
#maxSpeed = 300;
 constructor (text,vot) {
  this.text = text;
  this.votesQty = vot;
  this.any = 'any_text';
  }
  
  ShowMaxSpeed() {
   console.log(#maxSpeed);
  }
}
user1 = new Comment('igor',25);
user1.ShowMaxSpeed();
  • /sites/data/attic/objavlenie_klassa.1702578975.txt.gz
  • Последнее изменение: 2023/12/14 18:36
  • tro