en vez de
El operando del lado izquierdo (LHS) es el objeto real que se prueba con el operando del lado derecho (RHS) que es el constructor real de una clase. La definición básica es:
Checks the current object and returns true if the object
is of the specified object type.
Aquí hay algunos buenos ejemplos y aquí hay un ejemplo tomado directamente del sitio de desarrolladores de Mozilla :
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)
Una cosa que vale la pena mencionar es que se instanceof
evalúa como verdadero si el objeto hereda del prototipo de la clase:
var p = new Person("Jon");
p instanceof Person
Eso es p instanceof Person
cierto ya que p
hereda de Person.prototype
.
Por solicitud del OP
He agregado un pequeño ejemplo con un código de muestra y una explicación.
Cuando declaras una variable, le das un tipo específico.
Por ejemplo:
int i;
float f;
Customer c;
Lo anterior se muestran algunas variables, a saber i
, f
y c
. Los tipos son integer
, float
y una definida por el usuario Customer
tipo de datos. Tipos como el anterior podrían ser para cualquier idioma, no solo JavaScript. Sin embargo, con JavaScript cuando declara una variable que no define explícitamente un tipo var x
, x podría ser un número / cadena / un tipo de datos definido por el usuario. Entonces, lo que instanceof
hace es verificar el objeto para ver si es del tipo especificado, por lo que desde arriba Customer
tomamos el objeto que podríamos hacer:
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!
Arriba hemos visto que c
se declaró con el tipo Customer
. Lo hemos renovado y comprobado si es de tipo Customer
o no. Claro que es cierto. Luego, aún usando el Customer
objeto, verificamos si es a String
. No, definitivamente no String
hemos renovado un Customer
objeto, no un String
objeto. En este caso, devuelve falso.
¡Es realmente así de simple!