A cópia do código é a seguinte:
/**
* param: o representa o valor detectado
* Retornar: retorne a string "indefinida", "número", "booleano", "string", "function", "regexp", "array", "date", "error", "objeto" ou "nulo"
*/
função typeof (o) {
var _toString = object.prototype.toString; // Obtenha a referência do método ToString () do objeto
// Liste os tipos de dados básicos e os tipos de objetos internos, e você pode complementar ainda mais a faixa do tipo de dados de detecção da matriz
var _type = {
"indefinido": "indefinido",
"Número": "Número",
"booleano": "booleano",
"String": "String",
"[função do objeto]": "função",
"[objeto regexp]": "regexp",
"[Array de objeto]": "Array",
"[data do objeto]": "data",
"[Erro do objeto]": "Erro"
}
retornar _type [typeof o] || _type [_ToString.Call (O)] || (O? "Objeto": "NULL"); // Detecção convertendo o valor em uma string e, em seguida, combinando a string de retorno contém um caractere específico
}
// Exemplo de aplicativo:
var a = math.abs;
alerta (typeof (a)); // retorna a string "Função"
O código é muito simples e as instruções estão todos nos comentários, por isso não vou falar muito absurdo aqui. Se você tiver as mesmas necessidades, consulte você mesmo.