Это старая версия документа!
Объявление класса
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);