ECMAScript 2016كه باES6 شناخته ميشود، كلاسهاي جاوااسكريپت را معرفي كرده است.
كلاسهاي جاوااسكريپت قالبهائي براي اشياء جاوااسكريپت هستتند.
با استفاده از كيوردclass يك كلاس ايجاد ميشود .
هميشه در كلاس متدي براي ساخت شئ كهconstructor() است، معرفي كنيد.
فرم كلي تعريف كلاس:
class ClassName { constructor() { ... } }
مثال ـ تعريف كلاسcar
class Car { constructor(name, year) { this.name = name; this.year = year; } }
در مثال فوق كلاسي بنامcar ايجاد ميشود .اين كلاس داراي دو ويژگي اوليه بنام name, year دارد
يك كلاس جاوااسكريپت شئ نيست .آن قالبي است براي ايجاد اشياء جاوااسكريپت.
هنگاميكه كلاسي وجود دارد، ميتوان با استفاده از آن كلاس شئ ايجاد كرد.
مثال ـ ايجاد شئ با يك كلاس
const myCar1 = new Car("Ford", 2014); const myCar2 = new Car("Audi", 2019);
در مثال فوق با استفاده از كلاسcar دو شئ بنامهاي mycar1 و mycar2 ايجاد شده است .
متد سازنده كلاس بصورت اتوماتيك در هنگام ايجاد شئ فراخوان ميشود.
متد سازنده ، متد خاصي است داراي مشخصات زير:
اگر متد سازنده را در كلاس تعريف نكنيد، جاوااسكريپت يك متد سازنده تهي اضافه ميكند.
متدهاي كلاس مشابه سينتكس متدهاي شئ ايجاد ميشود.
از كيوردclass براي ايجاد كلاس استفاده نمائيد .هميشه متد سازنده constructor( ) را به كلاس اضافه كنيد .سپس هر تعداد متد لازم را اضافه نمائيد:
فرم كلي
class ClassName { constructor() { ... } method_1() { ... } method_2() { ... } method_3() { ... } }
مثال ـ ايجاد يك متد بنامage كه برگشتي آن Car age باشد .
class Car { constructor(name, year) { this.name = name; this.year = year; } age() { const date = new Date(); return date.getFullYear() - this.year; } } const myCar = new Car("Ford", 2014); document.getElementById("demo").innerHTML = "My car is " + myCar.age() + " years old.";
ميتوان به متد كلاس پارامتر ارسال كرد . نمونه مثال زير:
مثال ـ ارسال پارامتر به متد كلاس
class Car { constructor(name, year) { this.name = name; this.year = year; } age(x) { return x - this.year; } } const date = new Date(); let year = date.getFullYear(); const myCar = new Car("Ford", 2014); document.getElementById("demo").innerHTML= "My car is " + myCar.age(year) + " years old.";
در جدول زير اولين نسخه مروگر كه از كلاسها بطور كامل پشتيباني ميكنند آماده است
49 | 12 | 45 | 9 | 36 |
Mar 2016 | Jul 2015 | Mar 2016 | Oct 2015 | Mar 2016 |
،سينتكس در كلاسها بايستي در حالت سختگيرانه نوشته شود.اگر قوانين حالت سختگيرانه رعايت نشود با خطا مواجه ميشويد.
مثال ـ در حالت سختگيرانه("strict mode") اگر متغيري تعريف نشده استفاده شود خطا ايجاد ميشود.
class Car { constructor(name, year) { this.name = name; this.year = year; } age() { // date = new Date(); // This will not work const date = new Date(); // This will work return date.getFullYear() - this.year; } }