Lädt...


🔧 Mastering JavaScript Classes: A Comprehensive Guide.🚀🚀💪


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Introduction

JavaScript classes, introduced in ECMAScript 2015 (ES6), provide a much cleaner and more intuitive syntax for creating objects and dealing with inheritance. This post explores JavaScript classes in depth, covering essential concepts and features with clear examples.

1. Overview

JavaScript classes are templates for creating objects. They encapsulate data with code to work on that data. Although they are primarily syntactical sugar over JavaScript's existing prototype-based inheritance, classes make object-oriented programming more accessible and easier to understand.

Example:

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

The constructor method is a special method for creating and initializing an object created with a class. There can be only one special method with the name "constructor" in a class.

Example:

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

The extends keyword is used in class declarations or class expressions to create a class that is a child of another class.

Example:

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. Private Properties

Private properties are declared with a # prefix, making them inaccessible from outside the class.

Example:

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. Public Class Fields

Public class fields are properties that can be defined directly within the class body, making them more concise and readable.

Example:

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. Static Methods

Static methods are called on the class itself, not on instances of the class. They are often used to create utility functions.

Example:

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. Static Initialization Blocks

Static initialization blocks allow you to perform complex initialization of static properties.

Example:

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. Getters and Setters

Getters and setters are used to define methods that get and set the value of an object’s properties.

Example:

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. Instance Methods

Instance methods are methods defined within a class that operate on instances of that class.

Example:

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

Conclusion

JavaScript classes offer a clean and concise way to create and manage objects, providing a range of features to support object-oriented programming. By understanding constructors, inheritance, private properties, public fields, static methods, and other concepts, you can leverage the full power of JavaScript classes in your projects. Happy coding!

...

🔧 Mastering JavaScript Classes: A Comprehensive Guide.🚀🚀💪


📈 44.57 Punkte
🔧 Programmierung

🔧 Mastering Classes and Objects in Programming: A Comprehensive Guide


📈 38.12 Punkte
🔧 Programmierung

🔧 A Comprehensive Guide to JavaScript Classes


📈 35.25 Punkte
🔧 Programmierung

🔧 Mastering Console Methods in JavaScript: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JSON Comparison in JavaScript: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering Binary Search in JavaScript: A Comprehensive Guide for Beginners


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript Closures: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript Building Blocks: A Comprehensive Guide🚀


📈 30.35 Punkte
🔧 Programmierung

🔧 🚀 Mastering JavaScript ArrayBuffer: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript Frameworks: A Comprehensive Guide.🚀🚀


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript's Call, Apply, and Bind Methods: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering Web Animation with JavaScript Libraries: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering TypeScript: A Comprehensive Guide for JavaScript Developers


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript: A Comprehensive Guide to Essential Methods and Latest Features


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering Asynchronous JavaScript: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript: A Comprehensive Interview Guide for Students


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering JavaScript Functions: A Comprehensive Guide for Developers


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering Console Methods in JavaScript: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 Mastering Console Methods in JavaScript: A Comprehensive Guide


📈 30.35 Punkte
🔧 Programmierung

🔧 A Comprehensive Guide to Breakpoints and Utility Classes in Tailwind CSS


📈 28.8 Punkte
🔧 Programmierung

🔧 Understanding Java Classes: A Comprehensive Guide with Examples


📈 28.8 Punkte
🔧 Programmierung

🔧 Unlocking the Power💪 of CSS Pseudo-Classes: A Comprehensive Guide.


📈 28.8 Punkte
🔧 Programmierung

🔧 When to Use Records, Classes, and Structs in .NET: A Comprehensive Guide


📈 28.8 Punkte
🔧 Programmierung

🔧 Enhancing Python Classes with Magic Methods: A Comprehensive Guide


📈 28.8 Punkte
🔧 Programmierung

🔧 JavaScript Classes 101: A Beginner's Guide to Object-Oriented Programming


📈 26.17 Punkte
🔧 Programmierung

🔧 Mastering JavaScript: A Comprehensive Collection of Free Online Tutorials


📈 24.85 Punkte
🔧 Programmierung

🔧 Mastering Asynchronous JavaScript with Generators: Comprehensive Tutorial


📈 24.85 Punkte
🔧 Programmierung

🔧 Mastering TypeScript: A Comprehensive Guide for Developers


📈 23.91 Punkte
🔧 Programmierung

🔧 Mastering GitHub Webhooks: A Comprehensive Guide


📈 23.91 Punkte
🔧 Programmierung

🔧 Mastering PostgreSQL Views and CTEs for Rails Developers: A Comprehensive Guide


📈 23.91 Punkte
🔧 Programmierung

🔧 Mastering Full-Stack Development: A Comprehensive Beginner’s Guide to the MERN Stack


📈 23.91 Punkte
🔧 Programmierung

🔧 Mastering Lists in HTML: A Comprehensive Guide


📈 23.91 Punkte
🔧 Programmierung

🔧 Mastering Command-Line Interfaces (CLI) in Python: A Comprehensive Guide


📈 23.91 Punkte
🔧 Programmierung

🔧 Mastering Cucumber Framework: A Comprehensive Guide to Behavior-Driven Development


📈 23.91 Punkte
🔧 Programmierung

matomo