S6 Կլասներ և Մոդուլներ
ES6 Կլասներ և Մոդուլներ JavaScript-ում
ES6-ը (ECMAScript 2015) բերեց class
-ի և module
-ի նոր սինտաքս, որոնք JavaScript-ում ավելացրին Object-Oriented Programming-ի ժամանակակից առանձնահատկությունները՝ պահելով լեզվի դինամիկ բնույթը։ Այս հոդվածում մենք կքննարկենք թե ինչպես են աշխատում ES6 կլասները, ինչպես օգտագործել ժառանգումը, և ինչպես են աշխատում ES մոդուլները՝ պարբերաբար համեմատելով դասական function-based մոտեցման հետ։
ES6-ում class
սինտաքսը գործում է որպես sugar՝ հիմքում գտնվող prototype-based ժառանգման վրա։ Այն պարզապես ավելի ընթեռնելի է և մոտ է Java-ի կամ C#-ի developer-ի մտածելակերպին։
class Person { constructor(name, age) { this.name = name; this.age = age; }
greet() { console.log(Hi, I'm ${this.name} and I'm ${this.age} years old.); } }
const john = new Person('John', 30); john.greet(); // Hi, I'm John and I'm 30 years old.
Կարևոր նկատառումներ՝
constructor
մեթոդը օբյեկտը initialize անելու հիմնական կետն է
prototype
-ին (ոչ թե օբյեկտի վրա) ES6-ը տրամադրում է extends
և super
բանալի բառերը՝ ժառանգություն ստեղծելու համար։
class Employee extends Person { constructor(name, age, position) { super(name, age); this.position = position; }
describe() { console.log(${this.name} is a ${this.position}.); } }
const anna = new Employee('Anna', 28, 'Developer'); anna.greet(); // Hi, I'm Anna and I'm 28 years old. anna.describe(); // Anna is a Developer.
Նշումներ՝
super
-ը կանչում է ծնող կլասի constructor-ը
Կլասի մեթոդները կարող են լինել ստատիկ՝ ուղղակիորեն կապված լինելով կլասի, ոչ թե օբյեկտի հետ։
class MathUtil { static add(a, b) { return a + b; } }
console.log(MathUtil.add(5, 3)); // 8
Օգտակար է՝ օգտակար գործառույթներ կամ utility ֆունկցիաներ սահմանելու համար։
ES6 մոդուլները թույլ են տալիս կոդը բաժանել ֆայլերի միջև՝ դարձնելով այն մաքուր և վերաօգտագործելի։
// math.js export function add(a, b) { return a + b; }
export const PI = 3.14159;
// main.js import { add, PI } from './math.js';
console.log(add(2, 3)); // 5 console.log(PI); // 3.14159
Այլընտրանք՝ default export
// logger.js export default function log(message) { console.log(`[LOG]: ${message}`); }
// app.js import log from './logger.js'; log('Hello world');
Մոդուլների առավելությունները՝
ES6 կլասներն ու մոդուլները JavaScript լեզվին բերել են structure և organization։ Դրանք թույլ են տալիս գրել ավելի մաքուր, մասշտաբավորվող, և վերաօգտագործելի կոդ։ Մոդուլների օգնությամբ կարելի է կազմակերպել մեծ նախագծեր և բաժանել պատասխանատվությունները ըստ ֆայլերի։