He usado instancias y tipos de tipos ocasionalmente antes, especialmente typeof, y lo he usado más. Hoy, he estudiado el código fuente EXT y he utilizado instancia en muchos lugares. De repente sentí que eran algo similares, pero deberían ser diferentes. Leí algunos artículos en línea y tengo una cierta comprensión de la relación entre ellos.
instanciaf y typeof se pueden usar para determinar si una variable está vacía o qué tipo de variable.
TypeOf se usa para obtener el tipo de variable. TypeOf generalmente solo puede devolver los siguientes resultados: número, booleano, cadena, función, objeto, indefinido. Podemos usar typeOf para obtener si existe una variable, como si (typeof a! = "Undefined") {}, en lugar de usar si (a) porque si a no existe (no se declara), se producirá un error. Para objetos especiales como Array, Null, etc., devolverá el objeto. Esta es la limitación de typeof.
Si queremos obtener si un objeto es una matriz, o determinar si una variable es una instancia de un objeto, debemos elegir usar InstanceOf. InstanceOf se usa para determinar si una variable es una instancia de un objeto. Por ejemplo, var a = new array (); alerta (una instancia de matriz); devolverá verdadero y alerta (una instancia de objeto) también devolverá verdadero; Esto se debe a que la matriz es una subclase de objeto. Por ejemplo: la función test () {}; var a = new test (); alerta (una instancia de prueba) devolverá verdadero.
Cuando se trata de instancia de, necesitamos insertar un problema más, es decir, argumentos de funciones. Todos podemos pensar que los argumentos son una matriz, pero si usamos InstanceOf para probar, encontraremos que los argumentos no son un objeto de matriz, aunque se ven muy similares.