Heim  >  Artikel  >  Web-Frontend  >  Was sind die Definitionsmethoden der Javascript-Klasse?

Was sind die Definitionsmethoden der Javascript-Klasse?

青灯夜游
青灯夜游Original
2021-04-19 15:01:462940Durchsuche

Die Methoden sind: 1. Konstruktormethode, Syntax „function Cat(){}var cat1=new Cat();}“ 2. Object.create()-Methode, Syntax „var Cat={};var cat1= Object.create(Cat);".

Was sind die Definitionsmethoden der Javascript-Klasse?

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

In der objektorientierten Programmierung ist eine Klasse eine Vorlage eines Objekts, die die Eigenschaften und Methoden definiert, die derselben Gruppe von Objekten gemeinsam sind (auch „Instanzen“ genannt).

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 gelehrt werden muss. Es verwendet einen Konstruktor, um eine „Klasse“ zu simulieren, und verwendet intern das Schlüsselwort this, um auf das Instanzobjekt zu verweisen.

  function Cat() {
    this.name = "大毛";
  }

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

  var cat1 = new Cat();
  alert(cat1.name); // 大毛

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

  Cat.prototype.makeSound = function(){
    alert("喵喵喵");
  }

Eine ausführliche Einführung in diese Methode finden Sie in der Artikelserie „Javascript Object-Oriented Programming“, die ich geschrieben habe. Ich werde hier nicht auf Details eingehen. Sein Hauptnachteil besteht darin, dass es relativ kompliziert ist, dies und einen Prototyp verwendet und sehr mühsam zu schreiben und zu lesen ist.

2. Object.create()-Methode

Um die Mängel der „Konstruktormethode“ zu beheben und Objekte bequemer zu generieren, wurde die fünfte Ausgabe des internationalen Standards ECMAScript für Javascript veröffentlicht (die dritte Ausgabe ist derzeit beliebt). , wurde eine neue Methode Object.create() vorgeschlagen.

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

  var Cat = {
    name: "大毛",
    makeSound: function(){ alert("喵喵喵"); }
  };

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(); // 喵喵喵

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();
    };
  }

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.

【Empfohlenes Lernen: Javascript-Tutorial für Fortgeschrittene

Das obige ist der detaillierte Inhalt vonWas sind die Definitionsmethoden der Javascript-Klasse?. 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