Heim > Artikel > Web-Frontend > So ermitteln Sie Referenzwerte in der Webentwicklung
Dieses Mal zeige ich Ihnen, wie Sie Referenzwerte in der Webentwicklung erkennen und welche Vorsichtsmaßnahmen zum Erkennen von Referenzwerten in der Webentwicklung gelten. Das Folgende ist ein praktischer Fall, schauen wir uns das an.
Referenzwerte werden auch Objekte genannt. In JS sind alle Werte außer primitiven Werten Referenzen. Es gibt mehrere integrierte Referenztypen: Objekt, Array, Datum und Fehler, aber nicht viele davon. Der Operator „typeof“ kann diese Referenztypen nicht ermitteln, da alle Objekte „Objekt“ zurückgeben.
Eine weitere nicht empfohlene Verwendung von typeof ist die Erkennung des Typs von Null. Der Typeof-Operator gibt „Objekt“ zurück, wenn er für Null verwendet wird. Dies sieht seltsam aus und wird als schwerwiegender Fehler in der Standardspezifikation angesehen. Daher sollten Sie beim Programmieren die Verwendung von typeof zur Erkennung des Nulltyps vermeiden.
Der beste Weg, den Typ eines Referenzwerts zu erkennen, ist die Verwendung des Instanzoperators. Die grundlegende Syntax von „Instanz von“ lautet: Wert „Instanz von Konstruktor“.
Ein interessantes Merkmal von „instanceof“ ist, dass es nicht nur den Konstruktor erkennt, der das Objekt erstellt hat, sondern auch die Prototypenkette. Die Prototypkette enthält viele Informationen, einschließlich des Vererbungsmusters, das zum Definieren des Objekts verwendet wird. Standardmäßig erbt beispielsweise jedes Objekt von Object, sodass der Wert „instanceof Object“ für jedes Objekt „true“ zurückgibt. Aus diesem Grund ist es nicht optimal, den Wert „instanceof Object“ zu verwenden, um zu bestimmen, ob ein Objekt von einem bestimmten Typ ist. Der
Instanceof-Operator kann auch benutzerdefinierte Typen erkennen, wie zum Beispiel:
function Person (name) { this.name = name; }var me = new Person('Nicholas');console.log(me instanceof Object); // trueconsole.log(me instanceof Person); // true
Bei der Erkennung benutzerdefinierter Typen in JS ist die beste Möglichkeit die Verwendung des Instanzof-Operators, der auch die einzige Möglichkeit ist. Das Gleiche gilt für integrierte JS-Typen (unter Verwendung des Instanzoperators). Allerdings gibt es eine gravierende Einschränkung.
Angenommen, ein Objekt in einem Browser-Frame (FrameA) wird an einen anderen Frame (FrameB) übergeben. Der Konstruktor Person ist in beiden Frames definiert. Wenn das Objekt aus Frame A eine Instanz von Person aus Frame A ist, gelten die folgenden Regeln.
frameAPersonInstance instanceof frameAPerson; // trueframeAPersonInstance instanceof frameBPerson; // false
Da jeder Frame eine Kopie von Person hat, wird er in diesem Frame als Kopieinstanz von Person betrachtet, auch wenn die beiden Definitionen möglicherweise genau gleich sind. Dieses Problem tritt nicht nur bei benutzerdefinierten Typen auf, sondern auch bei zwei anderen sehr wichtigen integrierten Typen: Funktionen und Arrays. Für diese beiden Typen besteht im Allgemeinen keine Notwendigkeit, „instanceof“ zu verwenden.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So erkennen Sie Originalwerte in der Webentwicklung
Wie Sie JS zum Übergeben verwenden Referenz und Wertübergabe
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie Referenzwerte in der Webentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!