Heim  >  Artikel  >  Web-Frontend  >  JavaScript hat streng genommen keine Klassen

JavaScript hat streng genommen keine Klassen

WBOY
WBOYOriginal
2023-05-20 22:36:08575Durchsuche

Mit der Beliebtheit und weit verbreiteten Verwendung von JavaScript achten immer mehr Entwickler auf einige Funktionen und Einschränkungen der Programmiersprache JavaScript. Eine davon ist, ob es ein Konzept einer Klasse gibt, eine heiß diskutierte Frage. In diesem Artikel werden wir tiefer in dieses Thema eintauchen, um die wahre Natur von JavaScript-Klassen zu verstehen.

JavaScript ist eine sehr flexible Programmiersprache mit leistungsstarken Funktionen wie Abschlüssen, Funktionen höherer Ordnung und prototypischer Vererbung, die die Kernfunktionen von JavaScript sind. Im Gegensatz zu anderen Programmiersprachen weist JavaScript in verschiedenen Paradigmen eine extrem hohe Komplexität auf.

Für viele Entwickler sind Klassen ein grundlegendes Konzept in vielen objektorientierten Programmiersprachen. Sprachen wie Python, C# und Java verfügen über Klassen, mit denen Sie Eigenschaften und Methoden definieren und neue Instanzen erstellen können. Klassen bieten einige der Vorteile der Wiederverwendbarkeit und Erweiterbarkeit von Code, da sie es Programmierern ermöglichen, Code in Module, Abstraktionen und Wiederverwendung zu unterteilen. Aber wenn wir über JavaScript sprechen, gibt es streng genommen keine Klasse.

Was ist eine Klasse?

Um dieses Problem besser zu verstehen, müssen wir zunächst verstehen, was eine Klasse ist. Eine Klasse ist eine Darstellung eines Objektmodells und einer speziellen Datenstruktur, die die Merkmale (Eigenschaften) und das Verhalten (Methoden) eines Objekts beschreiben kann.

In der Klassenhierarchie definiert die obere übergeordnete Klasse einige gemeinsame Attribute und Methoden, und diese gemeinsamen Attribute und Methoden können von Unterklassen geerbt und verwendet werden. Unterklassen können diese Eigenschaften und Methoden neu definieren oder erben und ihre eigenen Eigenschaften und Methoden hinzufügen.

Das Folgende ist beispielsweise ein Beispiel für eine in Java geschriebene Klasse:

public class Person{
  private String name;
  private int age;
  
  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  
  public String getName() {
    return this.name;
  }
  
  public int getAge() {
    return this.age;
  }
  
  public void sayHello() {
    System.out.println("Hello, my name is " + this.name);
  }
}

In diesem Beispiel definieren wir eine Person-Klasse, die zwei Attribute enthält: Name und Alter sowie zwei Methoden getName() und getAge( ). Es verfügt außerdem über eine sayHello()-Methode, die den Namen der Person-Instanz auf der Konsole ausgibt.

Objekte in JavaScript

Manche Leute denken vielleicht, dass JavaScript eine vollständig objektorientierte Sprache ist, was ein Missverständnis ist. Obwohl JavaScript eine klassenähnliche syntaktische Struktur verwendet, basiert sein reales Objektmodell auf Prototypen.

In JavaScript werden Objekte zur Laufzeit basierend auf einer JavaScript-Funktion erstellt. Es gibt keine explizite Klassendefinition, sondern verwendet Konstruktoren, um neue Objekte zu erstellen. Im Konstruktor können Sie die anfänglichen Eigenschaften und Methoden eines Objekts als grundlegende Definition des Objekts definieren.

Das folgende Beispiel ist beispielsweise ein Person-Objekt, das von einem JavaScript-Konstruktor definiert wird:

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

Person.prototype.getName = function() {
  return this.name;
};

Person.prototype.getAge = function() {
  return this.age;
};

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
};

Wie Sie sehen können, wird in JavaScript ein Person-Objekt erstellt, das auf dem Konstruktor basiert. In dieser Funktion legen wir die Namens- und Alterseigenschaften fest und weisen sie mit dem Schlüsselwort „this“ dem neu erstellten Objekt zu. Anschließend verwenden wir das Person.prototype-Objekt, um drei Methoden für die neu erstellte Person zu definieren.

Prototypische Vererbung

In JavaScript ist Vererbung eine nicht-traditionelle Methode, die mithilfe der prototypischen Vererbung implementiert wird. Die prototypische Vererbung wird implementiert, da alle JavaScript-Objekte über ein Prototypobjekt verfügen.

Jedes JavaScript-Objekt verfügt über ein Prototypobjekt, das die Eigenschaften und Methoden des Objekts enthält. Wenn wir ein neues Objekt erstellen, ist sein ursprünglicher Prototyp leer und es erbt Mitglieder vom Prototyp des Konstruktors. Alle anderen Objekte können weiterhin ihre eigenen Eigenschaften und Methoden definieren.

Der folgende Code zeigt beispielsweise, wie man durch prototypische Vererbung neue Eigenschaften und Methoden zu einem erstellten Objekt hinzufügt:

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

Person.prototype.getName = function() {
  return this.name;
};

Person.prototype.getAge = function() {
  return this.age;
};

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
};

Person.prototype.setAge = function(newAge) {
  this.age = newAge;
};

In diesem Beispiel haben wir eine Methode namens setAge() hinzugefügt und sie zu Person im Prototypobjekt hinzugefügt. Jetzt können wir diese Methode verwenden, um ein neues Alter für das Person-Objekt festzulegen.

Fazit

Streng genommen hat JavaScript keine Klasse. Dies liegt am speziellen Design von JavaScript. In JavaScript werden Objekte basierend auf Prototypvariablen erstellt, und die prototypische Vererbung wird verwendet, um die Vererbungsbeziehung zwischen Objekten zu implementieren. Dadurch bietet JavaScript ein sehr flexibles Programmiermodell, das es Programmierern ermöglicht, unterschiedliche Programmierparadigmen in unterschiedlichen Funktionen zu implementieren.

Das Kernkonzept der objektorientierten JavaScript-Programmierung sind nicht Klassen, sondern Objekte. Daher müssen Sie bei der Implementierung komplexer JavaScript-Anwendungen die Fähigkeiten zum Erstellen und Vererben von Objekten beherrschen, indem Sie sich mit dem prototypischen Vererbungsmechanismus von JavaScript vertraut machen. Dies ist der Schlüssel zum Schreiben effizienten JavaScript-Codes.

Das obige ist der detaillierte Inhalt vonJavaScript hat streng genommen keine Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:So beherrschen Sie JavascriptNächster Artikel:So beherrschen Sie Javascript