JavaScript-Grundlagen dieser Verweisung

JavaScript-Grundlagen dieser Verweisung

Dies ist in JavaScript ebenfalls eine magische Sache. In der objektorientierten Programmierung (wie Java) stellt es eine aktuelle Objektreferenz dar. In JavaScript ist dies jedoch nicht festgelegt, sondern ändert sich mit der Ausführungsumgebung.

Das

Schauen wir uns wie üblich zuerst den Code an:

Verfahren

Funktionstest () {
    konsole.log(dies);
}

Bildbeschreibung hier einfügen

Im Objekt

Funktionstest () {
    konsole.log(dies);
}

Bildbeschreibung hier einfügen

In einer Methode bezieht sich dies auf das Objekt, zu dem die Methode gehört. Da es sich bei der ersten um eine Methode im Fenster handelt, wird das Fenster gedruckt, und die Eat-Methode ist eine Person-Methode, sodass das Objekt Person gedruckt wird.

Man kann also erkennen, dass die alleinige Verwendung von „this“ in der Konsole das globale Objekt darstellt.

Bildbeschreibung hier einfügen

Versteckt dies

In Objekten können Sie diese vorab einzeln deklarieren:

var Person1 = {
    Name: „Zhang San“,
    Alter:18
}
var Person2 = {
    Name:"Li Si",
    Alter:19
}

Das wäre sehr mühsam zu schreiben, Sie können also wie folgt das Konzept der Java-Klassen lernen:

var Person = Funktion (Name, Alter) {
    dieser.name=Name,
    this.age=Alter
       
}
var Person1=new Person("Person",18);
var Person2=neue Person("Li Si",19);

Bildbeschreibung hier einfügen

Tatsächlich ist in new ein return this versteckt. Wenn Sie new nicht verwenden, werden Sie feststellen, dass das neu erstellte Objekt nicht zurückgegeben wird.

Bildbeschreibung hier einfügen

Jetzt vervollständigen wir es:

var Person = Funktion (Name, Alter) {
    dieser.name=Name,
    this.age=Alter
    gib dies zurück;
}
var Person1=new Person("Person",18);
var Person2=neue Person("Li Si",19);

Bildbeschreibung hier einfügen

Auf diese Weise können Sie den Effekt sogar vortäuschen:

var Person = Funktion (Name, Alter) {
    var das={};
    dieser.name=Name,
    that.age=Alter
    gib das zurück;
}
var Person1=new Person("Person",18);
var Person2=neue Person("Li Si",19);

Bildbeschreibung hier einfügen

Strikter Modus

Dies hat ein magisches Verhalten im strikten und nicht strikten Modus

Funktion test() {
  gib dies zurück;
}

# Wenn „use strict“ vor js hinzugefügt wird, bedeutet dies den strikten Modus „use strict“;
Funktion test() {
  gib dies zurück;
}

Bildbeschreibung hier einfügen

Dies zeigt, dass in einer Funktion im nicht strikten Modus der Besitzer der Funktion standardmäßig daran gebunden ist. Daher kann der globale Wert gedruckt werden, aber im strengen Modus ist die Funktion nicht daran gebunden, sodass dies nicht definiert ist.

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung dieser Zeigerfunktion in JS
  • Detaillierte Erklärung dieser Referenz und benutzerdefinierter Eigenschaften in JavaScript
  • Detaillierte Erklärung des this-Zeigeproblems in JavaScript
  • Detaillierte Erklärung der Funktionsklassifizierung und Beispiele für diese Zeigerfunktion in Javascript
  • Detaillierte Erklärung dieses Zeigeproblems in der JavaScript-Funktion
  • Detaillierte Erklärung des this-Pointing-Problems von JavaScript-Prototypobjekten

<<:  Lösung für das Textüberlaufproblem auf CSS-Flex-Basis

>>:  Verstehen Sie den Rendering-Prozess von HTML-Seiten als Vorbereitung auf das Erlernen der Front-End-Leistungsoptimierung.

Artikel empfehlen

Bringen Sie Ihnen bei, wie Sie wartbaren JS-Code schreiben

Inhaltsverzeichnis Was ist wartbarer Code? Code-K...

VMware virtuelle Maschine installieren CentOS 8 (1905) System-Tutorial-Diagramm

Die weltberühmte virtuelle Maschinensoftware VMwa...

Lernen Sie die Grundlagen der JavaScript-DOM-Operationen in einem Artikel

DOM-Konzepte DOM: Dokumentobjektmodell: Das Dokum...

Entdecken Sie die Wahrheit hinter dem Neuladevorgang in Nginx

Der heutige Artikel stellt hauptsächlich den Neul...

Lösung für den MySQL-Fehlercode 1064

Wenn die Wörter in der SQL-Anweisung mit den Schl...

Ursachen und Lösungen für domänenübergreifende Probleme bei Ajax-Anfragen

Inhaltsverzeichnis 1. Wie entsteht Cross-Domain? ...

Layout im Vue.js-Stil Allgemeine Fähigkeiten zur Flutter-Geschäftsentwicklung

Korrespondenz zwischen Flutter und CSS im Shadow-...

JavaScript implementiert Ziehen mit der Maus, um die Div-Größe anzupassen

In diesem Artikel wird der spezifische JavaScript...