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 instanceofBewertung als wahr, wenn das Objekt vom Prototyp der Klasse erbt:
var p = new Person("Jon");
p instanceof Person
Das ist p instanceof Personwahr, da perbt 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, fund c. Die Typen sind integer, floatund eine Benutzer - definierte CustomerDatentypen. 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 xX kann eine Zahl / Zeichenfolge / ein benutzerdefinierter Datentyp sein. Also , was instanceoftut , ist es das Objekt überprüft, ob es von der Art ist , angegeben , so von oben die Einnahme CustomerObjekt , 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 cmit dem Typ deklariert wurde Customer. Wir haben es neu gemacht und geprüft, ob es vom Typ ist Customeroder nicht. Sicher ist, es gibt wahr zurück. Dann Customerprüfen wir immer noch mit dem Objekt, ob es ein ist String. Nein, definitiv nicht Stringwir haben ein CustomerObjekt neu gemacht, kein StringObjekt. In diesem Fall wird false zurückgegeben.
So einfach ist das wirklich!