آموزش کلاس‌ها و برنامه‌نویسی شی‌گرا (OOP) در جاوااسکریپت

۱۴۰۵/۰۸/۱۳ | چهارشنبه، ۱۳ آبان
دوره آموزشی ویژه 4 اپیزود اول تمام دوره های آموزشی ویدیویی رایگان میباشد دانلود رایگان

دورهٔ جامع CSS از صفر

آموزش CSS از صفر در ۲۲ ویدیو: مدل جعبه، انتخاب‌گر، فلکس‌باکس، گرید، واکنش‌گرایی، متغیرها، انیمیشن و معماری، تا پروژهٔ کامل صفحهٔ محصول؛ کد کنار خروجی ...

مدرس دوره : تیم 22 اپیزود ویدیویی 03 ساعت و 33 دقیقه و 59 ثانیه آموزش ویدیویی
متن پرونده شماره 82 - جاوااسکریپت

برنامه‌نویسی شی‌گرا (OOP) روشی برای سازماندهی کدها بر اساس مفهوم «شی» است؛ دقیقاً مانند دنیای واقعی که هر چیز، ویژگی‌ها و رفتارهای خود را دارد. کلاس در واقع یک نقشه یا قالب برای ساخت اشیا است. مثلاً کلاس Car قالب ساخت خودروهای مختلفی است که هر کدام رنگ، مدل و سال ساخت خاص خود را دارند. جاوااسکریپت از نسخه ES6 سینتکس کلاس را معرفی کرد که کار با شی‌گرایی را بسیار ساده‌تر می‌کند.

تعریف کلاس

هر کلاس با کلمه کلیدی class تعریف می‌شود و متد constructor هنگام ساخت شی جدید اجرا شده و ویژگی‌های اولیه را تنظیم می‌کند:

class Car {
    constructor(brand, model, year) {
        this.brand = brand;
        this.model = model;
        this.year = year;
    }

    getInfo() {
        return this.brand + " " + this.model + " (" + this.year + ")";
    }
}

const myCar = new Car("سایپا", "کوییک", 1403);
console.log(myCar.getInfo());   // سایپا کوییک (1403)

Getter و Setter

با get و set می‌توان دسترسی به ویژگی‌ها را کنترل کرد یا هنگام خواندن، مقداری پردازش‌شده برگرداند؛ مثلاً نمایش قیمت به همراه واحد پول:

class Product {
    constructor(name, price) {
        this.name = name;
        this.price = price;
    }

    get formattedPrice() {
        return this.price.toLocaleString() + " تومان";
    }
}

const laptop = new Product("لپ‌تاپ ایسوس", 45000000);
console.log(laptop.formattedPrice);

وراثت (Inheritance)

یکی از قدرتمندترین مفاهیم شی‌گرایی وراثت است؛ یعنی یک کلاس می‌تواند ویژگی‌ها و متدهای کلاس دیگری را به ارث ببرد. با کلمه extends کلاس فرزند از کلاس والد مشتق می‌شود و با super می‌توان به سازنده و متدهای والد دسترسی پیدا کرد:

class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {
        return this.name + " صدایی تولید می‌کند";
    }
}

class Dog extends Animal {
    speak() {
        return this.name + " واق واق می‌کند";
    }
}

const dog = new Dog("سگ نگهبان");
console.log(dog.speak());   // سگ نگهبان واق واق می‌کند
محصول اورجینال INZIP
قالب وردپرس باریستا مخصوص کافه تم نسکافه ای روشن (دو زبانه)

قالب وردپرس باریستا مخصوص کافه تم نسکافه ای روشن (دو زبانه)

دانلود پوسته وردپرس باریستا؛ قالب کافیشاپ، رُستری قهوه و فروشگاه قهوه دوزبانه با منوی رومیزی، رزرو آنلاین میز با کد پیامکی و ووکامرس. طراحی اختصاصی inzip.ir

تحویل آنی آپدیت رایگان بدون قفل لایسنس پشتیبانی واقعی
۳,۹۹۰,۰۰۰ تومان ۲,۹۶۰,۰۰۰ تومان
بازدید و دانلود آنی
٪۲۶
تخفیف ویژه
سود شما
۱,۰۳۰,۰۰۰ تومان

متدهای استاتیک

متدهایی که با static تعریف می‌شوند به خود کلاس تعلق دارند، نه اشیا ساخته‌شده از آن، و بیشتر برای توابع کمکی کاربرد دارند:

class MathHelper {
    static square(number) {
        return number * number;
    }
}

console.log(MathHelper.square(5));   // 25

مزایای برنامه‌نویسی شی‌گرا

شی‌گرایی باعث نظم و ساختار بهتر کدها می‌شود، از تکرار جلوگیری می‌کند، نگهداری برنامه‌های بزرگ را ساده می‌سازد و امکان استفاده مجدد از کدها را فراهم می‌کند. فریم‌ورک‌های معروفی مانند React نیز در بسیاری از بخش‌ها بر همین مفاهیم تکیه دارند؛ پس سرمایه‌گذاری روی یادگیری آن ارزشمند است.

جمع‌بندی

در این مقاله با تعریف کلاس، سازنده، متدها، Getter و Setter، وراثت و متدهای استاتیک آشنا شدید. برای تثبیت یادگیری پیشنهاد می‌کنیم یک پروژه کوچک مانند سیستم مدیریت کتابخانه با کلاس‌های Book و Library طراحی کنید تا این مفاهیم برایتان ملموس‌تر شود.

برچسب‌های این مقاله
  • کلاس در جاوااسکریپت
  • شی گرایی در جاوااسکریپت
  • oop در جاوااسکریپت
  • javascript class
  • وراثت در جاوااسکریپت
  • برنامه نویسی شی گرا
  • javascript oop
  • آموزش جاوااسکریپت
٪۴۱
دوره اختصاصی INZIP

دورهٔ جامع HTML از صفر

آموزش حرفه ای HTML از صفر در ۱۶ ویدیو: سند، متن، لینک، تصویر، جدول، فرم، معنایی‌سازی، دسترس‌پذیری و سئو، تا پروژهٔ کامل صفحهٔ فروشگاه محصول.

تماشای آنلاین + دانلود دسترسی آنی و همیشگی به‌روزرسانی رایگان کیفیت Full HD
۹۹۰,۰۰۰ تومان ۵۹۰,۰۰۰ تومان سود شما ۴۰۰,۰۰۰ تومان
مشاهده سریال