Heim > Web-Frontend > js-Tutorial > Hauptteil

Erfahren Sie mehr über Entwurfsmuster und Best Practices in JavaScript

WBOY
Freigeben: 2023-11-03 08:58:54
Original
840 Leute haben es durchsucht

Erfahren Sie mehr über Entwurfsmuster und Best Practices in JavaScript

Mit der kontinuierlichen Weiterentwicklung von JavaScript und der Erweiterung seines Anwendungsbereichs beginnen immer mehr Entwickler zu erkennen, wie wichtig Designmuster und Best Practices sind. Ein Entwurfsmuster ist eine Software-Entwurfslösung, die sich in bestimmten Situationen als nützlich erweist. Best Practices beziehen sich auf einige der besten Spezifikationen und Methoden, die wir während des Programmierprozesses anwenden können.

In diesem Artikel werden wir Designmuster und Best Practices in JavaScript untersuchen und einige konkrete Codebeispiele bereitstellen. Fangen wir an!

1. Entwurfsmuster in JavaScript

  1. Singleton-Muster

Das Singleton-Muster kann sicherstellen, dass eine Klasse nur eine Instanz hat und einen globalen Zugriffspunkt bereitstellt. In JavaScript kann das Singleton-Muster zum Verwalten des globalen Status und der Ressourcen verwendet werden.

Codebeispiel:

const Singleton = (function () {
  let instance;

  function createInstance() {
    const object = new Object({ name: "Singleton Object" });
    return object;
  }

  return {
    getInstance: function () {
      if (!instance) {
        instance = createInstance();
      }
      return instance;
    },
  };
})();

const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();

console.log(instance1 === instance2); // true
console.log(instance1.name); // 'Singleton Object'
Nach dem Login kopieren
  1. Beobachtermuster

Das Beobachtermuster ermöglicht es einem Objekt (Subjekt), ein anderes Objekt (Beobachter) zu überwachen und es über bestimmte Zustandsänderungen zu benachrichtigen. In JavaScript kann das Beobachtermuster verwendet werden, um ein Ereignismanagement und eine bessere Modularität zu erreichen.

Codebeispiel:

class Subject {
  constructor() {
    this.observers = [];
  }

  subscribe(observer) {
    this.observers.push(observer);
  }

  unsubscribe(observer) {
    const index = this.observers.findIndex((obs) => {
      return obs === observer;
    });
    this.observers.splice(index, 1);
  }

  notify() {
    this.observers.forEach((observer) => {
      observer.update();
    });
  }
}

class Observer {
  constructor(name) {
    this.name = name;
  }
  update() {
    console.log(`${this.name} has been notified!`);
  }
}

const subject = new Subject();
const observer1 = new Observer("Observer 1");
const observer2 = new Observer("Observer 2");

subject.subscribe(observer1);
subject.subscribe(observer2);

subject.notify(); // Observer 1 has been notified! Observer 2 has been notified!
Nach dem Login kopieren
  1. Factory Pattern

Factory Pattern kann Objekte basierend auf Parametern dynamisch erstellen. In JavaScript kann das Factory-Muster zum Erstellen von Objekten unterschiedlichen Typs verwendet werden, ohne dass die Erstellungslogik dem Client offengelegt werden muss.

Codebeispiel:

class Shape {
  draw() {}
}

class Circle extends Shape {
  draw() {
    console.log("Drawing a Circle!");
  }
}

class Square extends Shape {
  draw() {
    console.log("Drawing a Square!");
  }
}

class ShapeFactory {
  static createShape(type) {
    switch (type) {
      case "Circle":
        return new Circle();
      case "Square":
        return new Square();
      default:
        throw new Error("Shape type not supported!");
    }
  }
}

const circle = ShapeFactory.createShape("Circle");
const square = ShapeFactory.createShape("Square");

circle.draw(); // Drawing a Circle!
square.draw(); // Drawing a Square!
Nach dem Login kopieren

2. Best Practices in JavaScript

  1. Verwenden Sie let und const anstelle von var

In ES6 sind let und const Bereichsvariablen auf Blockebene, während var Bereichsvariablen auf Funktionsebene sind. Die Verwendung von let und const verhindert das Hochstufen von Variablen und die versehentliche Änderung des Werts einer Variablen.

  1. Kapseln Sie mehrere Eigenschaften und Methoden in einem Objekt.

Das Kapseln verwandter Eigenschaften und Methoden kann die Lesbarkeit und Wartbarkeit des Codes verbessern. Namespace-ähnliche Strukturen können mithilfe von Objektliteralen und -klassen einfach erstellt werden.

Codebeispiel:

const myModule = {
  prop1: "value1",
  prop2: "value2",
  method1() {
    console.log("Method 1 called!");
  },
  method2() {
    console.log("Method 2 called!");
  },
};

myModule.method1(); // Method 1 called!
Nach dem Login kopieren
  1. Globale Variablen vermeiden

In JavaScript können globale Variablen zu Namenskonflikten und Codekopplung führen. Durch die Kapselung verwandter Variablen und Funktionen in einem Bereich können diese Probleme vermieden werden.

Codebeispiel:

(function () {
  const a = "value1";
  const b = "value2";

  function doSomething() {
    console.log(a + b);
  }

  doSomething(); // value1value2
})();
Nach dem Login kopieren
  1. Verwenden Sie den strikten Modus

Die Verwendung des strikten Modus kann einige häufige Fehler verhindern, wie das versehentliche Ändern globaler Variablen und das Vergessen, Variablen zu definieren. Der strikte Modus bietet außerdem eine bessere Unterstützung für zukünftige ECMAScript-Standards.

Codebeispiel:

"use strict";

let foo = "bar"; // OK
delete foo; // Error: Delete of an unqualified identifier in strict mode.
Nach dem Login kopieren

Fazit

Designmuster und Best Practices können uns helfen, JavaScript-Code besser zu organisieren und zu verwalten und die Lesbarkeit, Wartbarkeit und Wiederverwendbarkeit zu verbessern. In diesem Artikel haben wir speziell die Muster Singleton, Observer und Factory sowie Best Practices für die Kapselung von Variablen, die Vermeidung globaler Variablen, das Scoping auf Blockebene und den strikten Modus besprochen. Hoffentlich hilft Ihnen dieses Wissen dabei, besseren JavaScript-Code zu schreiben.

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über Entwurfsmuster und Best Practices in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!