Instanz von
Der LHS-Operand (Left Hand Side) ist das tatsächliche Objekt, das mit dem RHS-Operanden (Right Hand Side) getestet wird, der der eigentliche Konstruktor einer Klasse ist. Die grundlegende Definition lautet:
Checks the current object and returns true if the object
is of the specified object type.
Hier sind einige gute Beispiele und hier ein Beispiel, das direkt von Mozillas Entwicklerseite stammt :
var color1 = new String("green");
color1 instanceof String; // returns true
var color2 = "coral"; //no type specified
color2 instanceof String; // returns false (color2 is not a String object)
Eine erwähnenswerte Sache ist die instanceof
Bewertung als wahr, wenn das Objekt vom Prototyp der Klasse erbt:
var p = new Person("Jon");
p instanceof Person
Das ist p instanceof Person
wahr, da p
erbt von Person.prototype
.
Auf Anfrage des OP
Ich habe ein kleines Beispiel mit Beispielcode und einer Erklärung hinzugefügt.
Wenn Sie eine Variable deklarieren, geben Sie ihr einen bestimmten Typ.
Zum Beispiel:
int i;
float f;
Customer c;
Die oben zeigen Ihnen einige Variablen, nämlich i
, f
und c
. Die Typen sind integer
, float
und eine Benutzer - definierte Customer
Datentypen. Typen wie die oben genannten können für jede Sprache verwendet werden, nicht nur für JavaScript. Wenn Sie jedoch mit JavaScript eine Variable deklarieren, definieren Sie keinen Typ explizit. var x
X kann eine Zahl / Zeichenfolge / ein benutzerdefinierter Datentyp sein. Also , was instanceof
tut , ist es das Objekt überprüft, ob es von der Art ist , angegeben , so von oben die Einnahme Customer
Objekt , das wir tun könnten:
var c = new Customer();
c instanceof Customer; //Returns true as c is just a customer
c instanceof String; //Returns false as c is not a string, it's a customer silly!
Oben haben wir gesehen, dass dies c
mit dem Typ deklariert wurde Customer
. Wir haben es neu gemacht und geprüft, ob es vom Typ ist Customer
oder nicht. Sicher ist, es gibt wahr zurück. Dann Customer
prüfen wir immer noch mit dem Objekt, ob es ein ist String
. Nein, definitiv nicht String
wir haben ein Customer
Objekt neu gemacht, kein String
Objekt. In diesem Fall wird false zurückgegeben.
So einfach ist das wirklich!