برنامه نویسی

تسلط بر کلاس های جاوا اسکریپت: راهنمای جامع.🚀🚀💪

معرفی

کلاس‌های جاوا اسکریپت، که در ECMAScript 2015 (ES6) معرفی شدند، یک نحو بسیار تمیزتر و بصری‌تر برای ایجاد اشیاء و برخورد با وراثت ارائه می‌دهند. این پست به بررسی عمیق کلاس های جاوا اسکریپت می پردازد و مفاهیم و ویژگی های اساسی را با مثال های واضح پوشش می دهد.


1. بررسی اجمالی

کلاس های جاوا اسکریپت قالب هایی برای ایجاد اشیا هستند. آنها داده ها را با کد کپسوله می کنند تا روی آن داده ها کار کنند. اگرچه کلاس‌ها عمدتاً شکل نحوی بر وراثت مبتنی بر نمونه اولیه جاوا اسکریپت هستند، کلاس‌ها برنامه‌نویسی شی‌گرا را در دسترس‌تر و درک آسان‌تر می‌کنند.

مثال:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

const person1 = new Person('Alice', 30);
person1.greet(); // Hello, my name is Alice and I am 30 years old.
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


2. سازنده

را constructor متد یک متد خاص برای ایجاد و مقداردهی اولیه یک شی ایجاد شده با یک کلاس است. تنها یک متد خاص با نام سازنده در یک کلاس می تواند وجود داشته باشد.

مثال:

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

  displayInfo() {
    console.log(`This car is a ${this.brand} ${this.model}.`);
  }
}

const myCar = new Car('Toyota', 'Corolla');
myCar.displayInfo(); // This car is a Toyota Corolla.
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


3. تمدید می شود

را extends کلمه کلیدی در اعلان های کلاس یا عبارات کلاس برای ایجاد کلاسی که فرزند کلاس دیگری است استفاده می شود.

مثال:

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

  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

class Dog extends Animal {
  speak() {
    console.log(`${this.name} barks.`);
  }
}

const myDog = new Dog('Rex');
myDog.speak(); // Rex barks.
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


4. املاک خصوصی

املاک خصوصی با الف اعلام می شود # پیشوند، آنها را از خارج از کلاس غیر قابل دسترس می کند.

مثال:

class User {
  #password;

  constructor(username, password) {
    this.username = username;
    this.#password = password;
  }

  checkPassword(password) {
    return this.#password === password;
  }
}

const user1 = new User('john_doe', '12345');
console.log(user1.checkPassword('12345')); // true
console.log(user1.#password); // SyntaxError: Private field '#password' must be declared in an enclosing class
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


5. فیلدهای کلاس عمومی

فیلدهای کلاس عمومی خصوصیاتی هستند که می توانند مستقیماً در بدنه کلاس تعریف شوند و آنها را مختصرتر و خواناتر کند.

مثال:

class Product {
  name = 'Default';
  price = 0;

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

  displayProduct() {
    console.log(`Product: ${this.name}, Price: $${this.price}`);
  }
}

const product1 = new Product('Laptop', 1200);
product1.displayProduct(); // Product: Laptop, Price: $1200
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


6. روش های استاتیک

متدهای استاتیک در خود کلاس فراخوانی می شوند، نه در نمونه هایی از کلاس. آنها اغلب برای ایجاد توابع ابزار استفاده می شوند.

مثال:

class MathUtils {
  static add(a, b) {
    return a + b;
  }

  static subtract(a, b) {
    return a - b;
  }
}

console.log(MathUtils.add(5, 3)); // 8
console.log(MathUtils.subtract(5, 3)); // 2
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


7. بلوک های راه اندازی استاتیک

بلوک های اولیه سازی استاتیک به شما امکان می دهند مقداردهی اولیه پیچیده خصوصیات استاتیک را انجام دهید.

مثال:

class Config {
  static API_URL;
  static PORT;

  static {
    this.API_URL = 'https://api.example.com';
    this.PORT = 8080;
  }

  static getConfig() {
    return `API URL: ${this.API_URL}, PORT: ${this.PORT}`;
  }
}

console.log(Config.getConfig()); // API URL: https://api.example.com, PORT: 8080
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


8. گیرندگان و ستترها

گیرنده ها و تنظیم کننده ها برای تعریف متدهایی استفاده می شوند که مقدار ویژگی های یک شی را دریافت و تنظیم می کنند.

مثال:

class Person {
  constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  get fullName() {
    return `${this.firstName} ${this.lastName}`;
  }

  set fullName(name) {
    [this.firstName, this.lastName] = name.split(' ');
  }
}

const person = new Person('John', 'Doe');
console.log(person.fullName); // John Doe
person.fullName = 'Jane Smith';
console.log(person.fullName); // Jane Smith
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


9. روش های نمونه

متدهای نمونه، متدهایی هستند که در یک کلاس تعریف شده اند و روی نمونه هایی از آن کلاس عمل می کنند.

مثال:

class Rectangle {
  constructor(width, height) {
    this.width = width;
    this.height = height;
  }

  area() {
    return this.width * this.height;
  }

  perimeter() {
    return 2 * (this.width + this.height);
  }
}

const rectangle = new Rectangle(10, 5);
console.log(rectangle.area()); // 50
console.log(rectangle.perimeter()); // 30
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


نتیجه

کلاس‌های جاوا اسکریپت روشی واضح و مختصر برای ایجاد و مدیریت اشیا ارائه می‌دهند و طیف وسیعی از ویژگی‌ها را برای پشتیبانی از برنامه‌نویسی شی گرا ارائه می‌دهند. با درک سازنده ها، وراثت، ویژگی های خصوصی، فیلدهای عمومی، روش های استاتیک و سایر مفاهیم، ​​می توانید از قدرت کامل کلاس های جاوا اسکریپت در پروژه های خود استفاده کنید. کد نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا