Heim >Web-Frontend >Front-End-Fragen und Antworten >Was sind statische Mitglieder einer Klasse in es6?

Was sind statische Mitglieder einer Klasse in es6?

青灯夜游
青灯夜游Original
2022-11-03 18:38:501297Durchsuche

In es6 werden Eigenschaften und Methoden, die direkt von einer Klasse aufgerufen werden, als statische Mitglieder bezeichnet. Wenn Sie das Schlüsselwort static zu einer Variablen oder Funktion in einer Klasse hinzufügen, handelt es sich um ein statisches Mitglied; statische Mitglieder werden nicht als Elemente neuer Objekte instanziiert. Der Unterschied zwischen statischen Mitgliedern und Instanzmitgliedern: 1. Instanzmitglieder gehören zu bestimmten Objekten, während statische Mitglieder von allen Objekten gemeinsam genutzt werden. 2. Auf statische Mitglieder wird über Klassennamen oder Konstruktoren zugegriffen, und auf Instanzmitglieder wird über instanziierte Objekte zugegriffen.

Was sind statische Mitglieder einer Klasse in es6?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

Objektorientiert

Die Hauptidee von objektorientiert besteht darin, das zu lösende Problem in Objekte zu zerlegen. Bei der Einrichtung von Objekten geht es nicht darum, einen Schritt umzusetzen, sondern das Verhalten von Objekten zu beschreiben Jedes Objekt löst das Problem. Der Kern der Objektorientierung ist Objekt.

Vorteile der Objektorientierung:

  • Tiefere Modularität und starke Kapselung
  • Einfachere Implementierung komplexer Geschäftslogik
  • Einfachere Wartung, Wiederverwendung und Erweiterung

Objektorientierte Funktionen:

  • Kapselung: Objekte sind eine Kombination aus Attributen und Verhaltensweisen.
  • Polymorphismus: Dieselbe Nachricht hat unterschiedliche Auswirkungen, wenn sie von verschiedenen Objekten empfangen wird.
  • Vererbung: Unterklassen können Informationen von übergeordneten Klassen erben.

Objektorientierte ES6-Syntax : ES ist die Abkürzung für ECMAScript, die Syntaxspezifikation von JavaScript. ES6 erweitert ES5 und fügt objektorientierte Programmiertechnologien und das Konzept von Klassen hinzu.

Klassen und Objekte

Klasse

: Eine Sammlung mit denselben Attributen und Verhaltensweisen wird als Klasse bezeichnet (eine Klasse ist eine Abstraktion eines Objekts, die nur mit den Methoden dieser Klasse verarbeitet werden kann). Klasse.

Objekt: Es ist eine Instanz einer Klasse (es ist die Konkretisierung der Klasse)
Klassenschlüsselwort

: Wird verwendet, um den

class 类名{// "类名"是一个用户标识符 通常建议首字母大写
           属性;
           函数;
}
Konstruktor der Klasse zu definieren

Verwenden Sie „constructor()“ in ES6, um Definieren Sie den Konstruktor. Seine Funktion besteht darin, die Eigenschaften (Mitgliedsvariablen) des Objekts zu initialisieren. Der Konstruktor ist nicht erforderlich. Wenn der Benutzer keinen Konstruktor definiert, generiert das System einen standardmäßigen, parameterlosen Konstruktor. „Gewöhnliche Memberfunktionen“ die Beziehung zwischen zwei Klassen, Unterklassen Sie kann einige Eigenschaften und Methoden von der übergeordneten Klasse erben, und Sie können nach der Vererbung auch Ihre eigenen einzigartigen Eigenschaften und Methoden hinzufügen.

Grammatik:

函数名([参数]){
     函数体语句
}
Hinweis zur Vererbung:


Die übergeordnete Klasse muss definiert worden sein

Die Unterklasse, auch abgeleitete Klasse genannt, kann die Attribute und Funktionen der übergeordneten Klasse erbenWas sind statische Mitglieder einer Klasse in es6?

Die Unterklasse kann nicht erben Sie den Konstruktor der übergeordneten Klasse

Super-Schlüsselwort

Unterklassen können den Konstruktor der übergeordneten Klasse nicht erben. Wenn Sie den Konstruktor der übergeordneten Klasse aufrufen möchten, können Sie das Super-Schlüsselwort verwenden.

**Hinweis:** Wenn super im Konstruktor einer Unterklasse verwendet wird, um den Konstruktor der übergeordneten Klasse aufzurufen, muss die aufrufende Anweisung die erste Anweisung des Konstruktors der Unterklasse seinRufen Sie den Konstruktor der übergeordneten Klasse auf

变量名 = function([参数]){
      函数体语句
}

Gewöhnliche Mitgliedsfunktion aufrufen

            class Person{
                constructor(name,age,sex){// 构造函数 初始化对象的成员
                    this.name = name;// this指向构造函数新创建的对象
                    this.age = age;
                    this.sex = sex;
                }
                    tt = function(){ //普通的成员函数
	                    console.log(this.name);
	                    console.log(this.age);
	                    console.log(this.sex);
                	}	
            }
            var p = new Person('李相赫',25,'男')// p1是一个对象 通过调用构造函数对p1的三个属性进行了初始化
            p.fun();
  • Methodenüberschreibung
  • Wenn die in der Unterklasse definierte Funktion denselben Namen wie die Funktion in der übergeordneten Klasse hat, überschreibt die Unterklassenfunktion die Funktion in der übergeordneten Klasse und das gewöhnliche Mitglied Die gleichnamige Funktion der übergeordneten Klasse kann in der Unterklasse aufgerufen werden. Um
  •         class Circle{// 定义类Circlie
                constructor(r){
                    this.radius = r;
                };
                area(){ // 计算圆的面积
                    var s = Math.PI*this.radius**2;
                    return s;
                };
                // 计算圆的周长
                CircleLength = function(){
                return 2*Math.PI*this.radius;
                };
            };
            var c1 = new Circle(5);
            console.log('半径为5的圆的面积='+c1.area());
            console.log('半径为5的圆的周长='+c1.Circle_length());

statische Mitglieder und Instanzmitglieder

statische Mitglieder

zu lösen: Mitglieder, auf die über

Klassenname

oder

Konstruktor

Instanz zugegriffen wird Mitglieder : Mitglieder, auf die über Instanzobjekt

zugegriffen wird, werden Instanzmitglieder genannt

Unterschied:

Was sind statische Mitglieder einer Klasse in es6?

Instanzmitglieder gehören zu bestimmten Objekten, während statische Mitglieder von allen Objekten gemeinsam genutzt werden

Auf statische Mitglieder wird über

Klassenname oder Konstruktor zugegriffen , Instanzmitglieder sind Objekte, die durch Besuchen Sie

Statische Eigenschaften in ES6 definieren1. Definieren Sie statische Eigenschaften außerhalb der Klasse: Statisch Eigenschaftsname

		// 用类实现简单的四则运算
        class Number{// 定义类Number
            constructor(n1,n2){
                this.n1=n1;
                this.n2=n2;
            };
            add(){
                var sum = this.n1+this.n2;
                return sum;
            };
            sub(){
                var sum1 = this.n1-this.n2;
                return sum1;
            };
            mut(){
                var sum2 = this.n1*this.n2;
                return sum2;
            };
            p(){
                if(this.n2!=0){
                    var sum3 = this.n1/this.n2;
                    return sum3;
                }
            }
        }
        var p1 = new Number(12,21);
        console.log(p1.add());
        console.log(p1.sub());
        console.log(p1.mut());
        console.log(p1.p());
in ES7 Statische Eigenschaftsdefinition

Verwenden Sie das

statische Schlüsselwort
    , wenn Sie eine Klasse definieren, um statische Eigenschaften zu definieren
  • class 子类名 extends 父类名{
           函数体语句;
    };
  • Der Unterschied zwischen einer Klasse und einem KonstruktorMember-Methoden in einer Klasse werden in definiert Nachdem Sie die Klasse zum Erstellen eines Objekts verwendet haben, verweisen alle Methoden des Objekts auf dieselbe Methode, wodurch Speicherplatz gespart werden kann.
    super([参数])
    【Verwandte Empfehlungen: Javascript-Video-Tutorial
  • ,
Web-Frontend

Das obige ist der detaillierte Inhalt vonWas sind statische Mitglieder einer Klasse in es6?. 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:Ist jquery eine Bibliothek?Nächster Artikel:Ist jquery eine Bibliothek?