wystąpienie
Operand po lewej stronie (LHS) to rzeczywisty testowany obiekt na operand po prawej stronie (RHS), który jest rzeczywistym konstruktorem klasy. Podstawowa definicja to:
Checks the current object and returns true if the object
is of the specified object type.
Oto kilka dobrych przykładów i oto przykład zaczerpnięty bezpośrednio ze strony dewelopera Mozilli :
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)
Jedną rzeczą, o której warto wspomnieć, jest instanceofprawda, jeśli obiekt dziedziczy po prototypie klasy:
var p = new Person("Jon");
p instanceof Person
Jest to p instanceof Personprawdą, ponieważ pdziedziczy po Person.prototype.
Na prośbę PO
Dodałem mały przykład z jakimś przykładem kodu i wyjaśnieniem.
Kiedy deklarujesz zmienną, nadajesz jej określony typ.
Na przykład:
int i;
float f;
Customer c;
Powyższy pokazać kilka zmiennych, a mianowicie i, foraz c. Typy są integer, floati zdefiniowane przez użytkownika Customertyp danych. Typy takie jak powyższe mogą być dla dowolnego języka, nie tylko JavaScript. Jednak w JavaScript, kiedy deklarujesz zmienną, nie definiujesz jawnie typu var x, x może być liczbą / ciągiem / typem danych zdefiniowanym przez użytkownika. Więc co instanceofto jest sprawdzanie obiektu, aby zobaczyć, czy jest on określonego typu, więc z góry biorącCustomer obiekt, który możemy zrobić:
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!
Powyżej widzieliśmy, że czostał zadeklarowany z typem Customer. Zmieniliśmy go i sprawdziliśmy, czy jest typu, Customerczy nie. Pewnie, że zwraca wartość true. Następnie nadal za pomocą Customerobiektu sprawdzamy, czy jest to String. Nie, zdecydowanie nie Stringnowy Customerobiekt nie Stringprzedmiot. W takim przypadku zwraca wartość false.
To naprawdę jest takie proste!