Heim Web-Frontend js-Tutorial Ausführliche Erläuterung von Beispielen für Klassenobjekte für den Einstieg in ECMAScript6

Ausführliche Erläuterung von Beispielen für Klassenobjekte für den Einstieg in ECMAScript6

Apr 28, 2017 am 10:01 AM

Dieser Artikel stellt hauptsächlich die detaillierte Einführung in ECMAScript6 vor – Klassenobjekt. Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.

Ein Merkmal objektorientierter Sprachen ist, dass sie alle das Konzept von Klassen haben, durch die beliebig viele Objekte mit denselben Eigenschaften und Methoden erstellt werden können.

In ECMAScript5 gibt es kein Klassenkonzept, daher unterscheiden sich seine Objekte von denen in klassenbasierten Sprachen.

Die traditionelle Art, Objekte in Javascript zu generieren, erfolgt über Konstruktoren

function Person(name, age){
  this.name = name;
  this.age = age;
  this.sayHello = function(){
    return "Hello "+ this.name;
  }
}

var person = new Person("dahan",18);
person.sayHello();
//Hello dahan
Nach dem Login kopieren

Da die obige Methode mit der Form der Methodendeklaration in Javascript identisch ist, besteht keine Unterscheidung zwischen Objekten und Methoden das Gleiche. Offensichtlich ist es leicht, verwirrt zu werden.

ES6 führt das Konzept von Class (Klasse) ein. Wenn wir Objekte über die ES6-Syntax erstellen, können wir das Schlüsselwort class verwenden, um Klassen genau wie die Java-Syntax zu definieren. Natürlich können die Funktionen dieser Syntax auch über ES5 realisiert werden. Dadurch wird die Definition von Klassen lediglich klarer und verständlicher.

//类的定义
class Person {
  //ES6中新型构造器
  constructor(name) {
    this.name = name;
  }
  //实例方法
  sayName() {
    console.log("我的名字叫"+ this.name);
  }
}
//类的继承
class Programmer extends Person {
  constructor(name) {
    //直接调用父类构造器进行初始化
    super(name);
  }
  program() {
    cosnole.log("这是我的地盘");
  }
}
//运行测试
var person = new Person('lingxiao');
var coder = new Programmer('coder');

person.sayName();
//我的名字叫lingxiao
coder.sayName();
//我的名字叫coder
coder.program();
//这是我的地盘
Nach dem Login kopieren

Lassen Sie uns nun auf die Syntax achten, die im obigen Code erscheint.

Konstruktor

constructor ist die Standardmethode der Klasse, genau wie die Hauptmethode in Java muss jede Klasse eine constructor-Methode haben. Wenn

ein Objekt über new instanziiert, ruft es automatisch die Methode constructor auf und der zurückgegebene Wert ist der von constructor zurückgegebene Wert. constructorStandardmäßig wird das Instanzobjekt der aktuellen Klasse zurückgegeben (this), wir können aber auch ein anderes Objekt angeben. Dies führt natürlich dazu, dass das instanziierte Objekt keine Instanz der aktuellen Klasse ist.

class Person {
  constructor(){
    var ob = new Object();
    return Ob;
  }
  sayHello(){
    return "Hello World"
  }
}
var person = new Person();
person.sayHello();
//Uncaught TypeError: person.sayHello is not a function
Nach dem Login kopieren

Wenn wir ein Objekt instanziieren, schreibt ES6 vor, dass ich das neue Schlüsselwort verwende. Wenn es direkt aufgerufen wird, wird es als Funktion aufgerufen.

class Person {
  constructor(name){
    this.name = name;
  }
};
var person = Person("dahan");
//Uncaught TypeError: Class constructor Person4 cannot be invoked without 'new'
Nach dem Login kopieren

dies

Im ersten Code sehen wir dies, dies zeigt in der Klasse auf die Instanz selbst, aber wenn wir dies tun, wird dies in der Methode verwendet Wenn diese Methode alleine aufgerufen wird, tritt ein Fehler auf.

class Person{
  constructor(name){
    this.name = name;
  }
  sayHello() {
    return "Hello "+this.name
  }
}
var person = new Person("dahan");
var sayHello = person.sayHello;
sayHello();
//Uncaught TypeError: Cannot read property 'name' of undefined
Nach dem Login kopieren

Dazu können wir einfach den Konstruktor einbinden this

class Person{
  constructor(name){
    this.name = name;
    this.sayHello = this.sayHello.call(this);
  }
  sayHello() {
    return "Hello "+this.name
  }
}
Nach dem Login kopieren

Inherit extension

Wir wollen Wenn Sie wollen Wenn Sie einige Attribute einer Klasse erweitern, ohne die ursprüngliche Klasse zu ändern, verwenden Sie Vererbung.

//类的继承
class Programmer extends Person {
  constructor(name,age) {
    this.age = age;//报错
    //直接调用父类构造器进行初始化
    super(name);
  }
  program() {
    cosnole.log("这是我的地盘");
  }
}
Nach dem Login kopieren

Bei Verwendung der Vererbung müssen Sie das Schlüsselwort super verwenden, um die übergeordnete Klasse super(name) aufzurufen. Rufen Sie einfach die Methode constructor der übergeordneten Klasse auf.

Wenn wir Vererbung verwenden, hilft uns das Schlüsselwort super außerdem dabei, den Zeiger von this zu ändern. Daher müssen wir zuerst die Methode super aufrufen, bevor wir this verwenden können. ES6 erfordert, dass der Konstruktor einer Unterklasse die Funktion super einmal ausführen muss, andernfalls wird ein Fehler gemeldet.

Schließlich lässt das Aufkommen des Schlüsselworts

class Javascript auch mehr wie eine objektorientierte Sprache aussehen .

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für Klassenobjekte für den Einstieg in ECMAScript6. 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)

So verwenden Sie Klassen und Methoden in Python So verwenden Sie Klassen und Methoden in Python Apr 21, 2023 pm 02:28 PM

Konzepte und Instanzen von Klassen und Methoden Klasse (Klasse): wird verwendet, um eine Sammlung von Objekten mit denselben Eigenschaften und Methoden zu beschreiben. Es definiert die Eigenschaften und Methoden, die jedem Objekt in der Sammlung gemeinsam sind. Objekte sind Instanzen von Klassen. Methode: In der Klasse definierte Funktion. Klassenkonstruktionsmethode __init__(): Die Klasse verfügt über eine spezielle Methode (Konstruktionsmethode) namens init(), die automatisch aufgerufen wird, wenn die Klasse instanziiert wird. Instanzvariablen: In der Deklaration einer Klasse werden Attribute durch Variablen dargestellt. Solche Variablen werden Instanzvariablen genannt. Instanziierung: Erstellen Sie eine Instanz einer Klasse, ein bestimmtes Objekt der Klasse. Vererbung: Das heißt, eine abgeleitete Klasse (derivedclass) erbt die Basisklasse (baseclass).

Ersetzen Sie den Klassennamen eines Elements mit jQuery Ersetzen Sie den Klassennamen eines Elements mit jQuery Feb 24, 2024 pm 11:03 PM

jQuery ist eine klassische JavaScript-Bibliothek, die in der Webentwicklung weit verbreitet ist. Sie vereinfacht Vorgänge wie die Verarbeitung von Ereignissen, die Bearbeitung von DOM-Elementen und die Durchführung von Animationen auf Webseiten. Bei der Verwendung von jQuery kommt es häufig vor, dass Sie den Klassennamen eines Elements ersetzen müssen. In diesem Artikel werden einige praktische Methoden und spezifische Codebeispiele vorgestellt. 1. Verwenden Sie die Methoden „removeClass()“ und „addClass()“. jQuery stellt die Methode „removeClass()“ zum Löschen bereit

Was bedeutet Klasse in Python? Was bedeutet Klasse in Python? May 21, 2019 pm 05:10 PM

Klasse ist ein Schlüsselwort in Python, das zum Definieren einer Klasse verwendet wird: Fügen Sie nach der Klasse ein Leerzeichen hinzu und fügen Sie dann den Klassennamen hinzu. Wenn es mehrere Wörter gibt, verwenden Sie die Groß-/Kleinschreibung Benennung, wie zum Beispiel [class Dog()].

Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Mar 10, 2024 pm 12:03 PM

Beim Schreiben von PHP-Code ist die Verwendung von Klassen eine weit verbreitete Praxis. Durch die Verwendung von Klassen können wir verwandte Funktionen und Daten in einer einzigen Einheit kapseln, wodurch der Code klarer, leichter lesbar und einfacher zu warten ist. In diesem Artikel wird die Verwendung von PHPClass ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, besser zu verstehen, wie Klassen zur Optimierung von Code in tatsächlichen Projekten angewendet werden. 1. Klassen erstellen und verwenden In PHP können Sie das Schlüsselwort class verwenden, um eine Klasse zu definieren und Eigenschaften und Methoden in der Klasse zu definieren.

Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? Aug 26, 2023 pm 10:58 PM

Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? In der Vue-Entwicklung verwenden wir häufig die V-Bind-Anweisung, um Klasse und Stil dynamisch zu binden. Manchmal können jedoch Probleme auftreten, z. B. dass wir V-Bind nicht korrekt zum Binden von Klasse und Stil verwenden können. In diesem Artikel werde ich die Ursache dieses Problems erläutern und Ihnen eine Lösung anbieten. Lassen Sie uns zunächst die v-bind-Direktive verstehen. v-bind wird zum Binden von V verwendet

So ermitteln Sie, ob ein Element eine Klasse in jquery hat So ermitteln Sie, ob ein Element eine Klasse in jquery hat Mar 21, 2023 am 10:47 AM

So bestimmt jquery, ob ein Element eine Klasse hat: 1. Bestimmen Sie, ob ein Element eine bestimmte Klasse hat, mit der Methode „hasClass(‘classname‘)“. 2. Bestimmen Sie, ob ein Element eine bestimmte Klasse hat, mit der Methode „is(‘.classname“. ')"-Methode.

Wie SpringBoot Klassendateien durch einen benutzerdefinierten Klassenlader verschlüsselt und schützt Wie SpringBoot Klassendateien durch einen benutzerdefinierten Klassenlader verschlüsselt und schützt May 11, 2023 pm 09:07 PM

Hintergrund In letzter Zeit wurden wichtige Geschäftscodes für das Unternehmens-Framework verschlüsselt, um zu verhindern, dass der technische Code durch Dekompilierungstools wie jd-gui einfach wiederhergestellt werden kann. Die Konfiguration und Verwendung des zugehörigen Verschleierungsschemas ist relativ komplex und es gibt viele Probleme für Springboot-Projekt, also werden die Klassendateien verschlüsselt und dann wird der benutzerdefinierte Klassencoder entschlüsselt und geladen. Dies erhöht nur die Schwierigkeit der Dekompilierung. Es wird das allgemeine Flussdiagramm zum Verschlüsselungsschutz angezeigt In der Abbildung unten verschlüsselt das Maven-Plugin die Kompilierung mit einem benutzerdefinierten Maven-Plugin. Nach der Verschlüsselung der angegebenen Klassendatei wird die verschlüsselte Klassendatei in den angegebenen Pfad kopiert und hier in „resource/corecla“ gespeichert

So beheben Sie den Fehler „[Vue warn]: v-bind:class/ :class'. So beheben Sie den Fehler „[Vue warn]: v-bind:class/ :class'. Aug 26, 2023 am 08:17 AM

So beheben Sie den Fehler „[Vuewarn]:v-bind:class/:class“ Während des Entwicklungsprozesses bei der Verwendung von Vue stoßen wir häufig auf einige Fehlermeldungen. Einer der häufigsten Fehler ist „[Vuewarn]:v-bind:class Fehler „/:class“. Diese Fehlermeldung erscheint normalerweise, wenn wir das Attribut v-bind:class oder :class verwenden, was darauf hinweist, dass Vue den von uns festgelegten Klassenwert nicht korrekt analysieren kann. Dann, wenn

See all articles