Вовед во класи и објекти во JavaScript
Сега ќе се занимаваме со изучување на ООП во JavaScript. Ајде да разгледаме пример од животот, а потоа да го пренесеме на JavaScript.
Како пример ќе земеме автомобил. Кај него има тркала, боја, вид на каросерија, волумен на моторот и така натаму. Освен тоа, возачот може да му дава команди: да тргне, да застане, да сврти десно, лево и сл.
Може да се каже дека постои одреден класа на автомобили, која поседува заеднички својства (кај сите има тркала и на сите може да им се даваат команди).
Конкретниот автомобил, кој стои на улица - е претставник на оваа класа, или, со други зборови, објект од оваа класа. Кај сите објекти од оваа класа има својства: број на тркала, боја, вид на каросерија и методи: да тргне, да застане, да сврти десно, лево.
Со други зборови самата класа - е цртеж, според кој во фабриката се прават автомобили. Објектот пак - е самата кола, направена според овие цртежи.
Во JavaScript класата се создава со клучен
збор class, по кој следува името
на оваа класа. Ајде да направиме класа Car:
class Car {
// тука код, односно JavaScript-цртеж на автомобил
}
Да назначиме сега во нашиот цртеж, дека секој автомобил, создаден според овој цртеж, ќе има својство за боја и својство за количината на гориво.
За ова внатре во класата ќе напишеме својство
color и својство fuel:
class Car {
color; // боја на автомобилот
fuel; // количина на гориво
}
Ајде сега да ги направиме методите на нашата класа.
Во JavaScript методите се слични на обични функции,
само се објавуваат без клучниот збор function.
Како што беше споменато погоре, нашиот автомобил може да тргне, може да свртува, може да застане. Ајде да направиме соодветни методи во нашата класа:
class Car {
color; // боја на автомобилот
fuel; // количина на гориво
// Команда да тргне:
go() {
// некаков JavaScript код
}
// Команда да сврти:
turn() {
// некаков JavaScript код
}
// Команда да застане:
stop() {
// некаков JavaScript код
}
}
Ние со вас го направивме цртежот на нашиот автомобил. Сега треба да отидеме во фабриката и да направиме објект од оваа класа (односно конкретен автомобил).
Во JavaScript ова се прави со клучниот збор
new, по кој се пишува името на класата:
new Car; // наредуваме на фабриката да направи автомобил
Сепак, ако само се создаде објект од класата - тоа нема да доведе до ништо (тоа е исто, како, на пример, да се декларира низа и да не се запише никаде). Нам ни треба променлива за чување на овој објект.
Нека оваа променлива се вика myCar
- да ја внесеме во неа создадениот објект:
let myCar = new Car;
По создавањето на автомобилот може да се пристапи кон неговите својства. Пристапот до нив се случува преку точка. Ајде да ги поставиме својствата на нашиот објект:
let myCar = new Car; // наредуваме на фабриката да направи автомобил
myCar.color = 'red'; // го боиме во црвена боја
myCar.fuel = 50; // го полниме со гориво
Сè, нашиот автомобил е создаден, обоен и наполнет. Сега можеме да му даваме команди преку методите на овој автомобил.
Пристапот до методите исто така се случува преку точка, но, за разлика од својството, после името на методот следува да се пишуваат заградни. Ајде да му даваме наредби на нашиот објект:
myCar.go();
myCar.turn();
myCar.stop();