end video

Този урок е достъпен само в платената версия на курса.

Вземи достъп до всички уроци 💫 цена: 99лв.

Ако вече имаш регистриран профил натисни тук.

Основи на уеб програмирането

§ Prototype, класове и ключовата дума "this"

Темата за обектно ориентираното програмиране в JavaScript винаги е носила един определен заряд. В този урок ще разгледаме function прототипите. Ще видим как класовете до голяма степен ги заместиха и ще уточним какво точно значи "this".

Prototype в JavaScript е механизъм, който се използва за наследяване на свойства и функционалности между обектите. Всеки обект в JavaScript има prototype. Един prototype може да наследява друг prototype. При опит за достъп до свойство на обект, JavaScript интерпретатора се опитва да намери такова свойство непосредствено в текущия prototype, ако не го намери там, то той търси свойството в прототипа на прототипа и така нататък.

Клас в JavaScript е синтактичен конструкт, който се използва за дефиниране на нов тип обекти. Той представлява способ за групиране на общи характеристики и функционалност на обектите в един тип. Класовете в JavaScript са достъпни от ECMAScript 2015 и са част от стандарта за езика.

Например, можем да дефинираме клас с име "Person", който да представлява човек с име и възраст:

class Person {
  constructor(name, age) {
    this.name = name;
  }
  greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

След това можем да създадем обект (инстанция) от този клас с ключовата дума new:

const john = new Person('John', 25);
john.greet(); // ще изведе: "Hello, my name is John"

Ключовата дума this в JavaScript се използва за да се обърнем към текущия контекст на изпълнение. Това означава, че this ще сочи към различни обекти в зависимост от контекста, в който се използва. Например, ако this се използва w метод на класс, то той ще се сочи към създадената инстанция от този клас. Ако this се използва в глобалния scope, то той ще се сочи към глобалния обект (например, window в браузър или global в Node.js).

questionnaire

Практика

Практиката е най-бързия начин да усвоиш знания трайно. Подготвил съм ти малка задача свързана с урока.

Практика
discussion

Материали

Материали свързани с урока:
Файлове към урока
Object prototype (MDN)
Classes (MDN)
Revealing module pattern

Материали

Следва: call, bind и apply(07:13)

Към урока →