Eu já usei a instância e o tipo de ocasionalmente antes, especialmente o TypeOF, e usei mais. Hoje, estudei o código -fonte ext e usei a instância em muitos lugares. De repente, senti que eles eram um pouco semelhantes, mas deveriam ser diferentes. Eu li alguns artigos on -line e tenho um certo entendimento do relacionamento entre eles.
A instância e o tipo de pode ser usada para determinar se uma variável está vazia ou que tipo de variável.
O TypeOf é usado para obter o tipo de variável. O tipo de geralmente pode retornar apenas os seguintes resultados: número, booleano, string, função, objeto, indefinido. Podemos usar o tipoof para obter se existe uma variável, como se (typeof a! = "Indefinido") {}, em vez de usar se (a) porque se a não existir (não declarado), ocorrerá um erro. Para objetos especiais como matriz, nulo etc., você retornará o objeto. Esta é a limitação do tipo de.
Se quisermos obter se um objeto é uma matriz ou determinar se uma variável é uma instância de um objeto, precisamos optar por usar a instância do. A instância é usada para determinar se uma variável é uma instância de um objeto. Por exemplo, var a = new Array (); alerta (uma instância de matriz); retornará true, e alerta (um objeto de instância) também retornará true; Isso ocorre porque a matriz é uma subclasse do objeto. Por exemplo: function test () {}; var a = new test (); alert (uma instância do teste) retornará true.
Quando se trata de instância, precisamos inserir mais um problema, ou seja, os argumentos da função. Todos podemos pensar que os argumentos são uma matriz, mas se usarmos a Instância para testar, descobriremos que os argumentos não são um objeto de matriz, embora eles pareçam muito semelhantes.