Inhaltsverzeichnis
Was sind die drei Methoden zum Definieren einer Klasse in JavaScript?
Heim Web-Frontend Front-End-Fragen und Antworten Welche drei Methoden gibt es zum Definieren einer Klasse in Javascript?

Welche drei Methoden gibt es zum Definieren einer Klasse in Javascript?

Feb 21, 2022 pm 05:13 PM
html javascript 前端

Drei Möglichkeiten, eine Klasse in JavaScript zu definieren: 1. Verwenden Sie den Konstruktor, um die Klasse zu definieren. Die Syntax lautet „Funktionsname(){this.name=value;}“ 2. Verwenden Sie „Object.create()“; 3. ,Verwenden Sie die Methode „createNew()“, um die Klasse zu definieren.

Welche drei Methoden gibt es zum Definieren einer Klasse in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Was sind die drei Methoden zum Definieren einer Klasse in JavaScript?

Bei der objektorientierten Programmierung ist eine Klasse eine Vorlage für ein Objekt, die die Eigenschaften und Methoden definiert, die derselben Gruppe von Objekten (auch „Instanzen“ genannt) gemeinsam sind. .

Die JavaScript-Sprache unterstützt keine „Klassen“, aber Sie können einige Problemumgehungen verwenden, um „Klassen“ zu simulieren.

1. Konstruktormethode

Dies ist eine klassische Methode und eine Methode, die in Lehrbüchern unbedingt gelehrt werden muss. Es verwendet den Konstruktor, um eine „Klasse“ zu simulieren, und verwendet intern das Schlüsselwort this, um auf das Instanzobjekt zu verweisen.

function Cat(){
  this.name = "大毛";
}
Nach dem Login kopieren

Verwenden Sie beim Generieren einer Instanz das neue Schlüsselwort.

var cat1 = new Cat();
alert(cat1.name);   //大毛
Nach dem Login kopieren

Die Attribute und Methoden der Klasse können auch im Prototypobjekt des Konstruktors definiert werden.

Cat.prototype.makeSound = function(){
  alert("喵喵喵");
}
Nach dem Login kopieren

Eine ausführliche Einführung in diese Methode finden Sie in der Artikelserie „JavaScript Object-Oriented Programming“, ich werde hier nicht näher darauf eingehen. Sein Hauptnachteil besteht darin, dass es kompliziert zu lehren ist, dies und Prototypen verwendet und sehr mühsam zu schreiben und zu lesen ist. 2. Methode Object.create() beliebt), Eine neue Methode Object.create() wird vorgeschlagen.

Bei dieser Methode ist „Klasse“ ein Objekt, keine Funktion.

var Cat = {
  name: "大毛",
  makeSound: function(){
    alert("喵喵喵");
  }
};
Nach dem Login kopieren
Verwenden Sie dann direkt Object.create(), um die Instanz zu generieren, ohne new zu verwenden.
var cat1 = Object.create(Cat);
alert(cat1.name);   //大毛
cat1.makeSound();   //喵喵喵
Nach dem Login kopieren
Derzeit nutzen die neuesten Versionen aller gängigen Browser (einschließlich IE9) diese Methode. Wenn Sie auf einen alten Browser stoßen, können Sie ihn mit dem folgenden Code selbst bereitstellen.

if(!Object.create){
  Object.create = function(o){
    function F(){};
    F.prototype = o;
    return new F();
  }
}
Nach dem Login kopieren

Diese Methode ist einfacher als die „Konstruktormethode“, kann jedoch weder private Eigenschaften und private Methoden implementieren noch Daten zwischen Instanzobjekten austauschen, und die Simulation von „Klassen“ ist nicht umfassend genug.

3. Minimalistische Methode

Der niederländische Programmierer Gabor de Mooij hat eine neue Methode vorgeschlagen, die besser ist als Object.create(). Er nennt diese Methode „Minimalistische Methode“. Dies ist auch die Methode, die ich empfehle.

3.1 KapselungDiese Methode gilt nicht für diesen und Prototypen. Der Code ist sehr einfach bereitzustellen, weshalb er wahrscheinlich als „minimalistische Methode“ bezeichnet wird. Zuallererst wird auch ein Objekt verwendet, um eine „Klasse“ zu simulieren. Definieren Sie in dieser Klasse einen Konstruktor caeateNew(), um Instanzen zu generieren.

var Cat = {
  createNew: function(){
    //some code here
  }
};
Nach dem Login kopieren

Dann definieren Sie in carateNew() ein Instanzobjekt und verwenden dieses Instanzobjekt als Rückgabewert.

var Cat = {
  createNew: function(){
    var cat = {};
    cat.name = "大毛";
    car.makeSound = function(){
      alert("喵喵喵");
    };
  }
};
Nach dem Login kopieren

Wenn Sie es verwenden, rufen Sie die Methode createNew() auf, um das Instanzobjekt abzurufen.

var cat1 = Cat.createNew();
cat1.makeSound();   //喵喵喵
Nach dem Login kopieren

Der Vorteil dieser Methode besteht darin, dass sie leicht zu verstehen ist, eine klare und elegante Struktur aufweist und dem traditionellen Konstrukt der „objektorientierten Programmierung“ entspricht, sodass die folgenden Funktionen problemlos bereitgestellt werden können.

Verwandte Empfehlungen:

Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonWelche drei Methoden gibt es zum Definieren einer Klasse in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles