이 기능을 구현하려면 약간의 코드를 작성해야 합니다. 다음 함수는 호출 시 변수 유형을 가져올 수 있으며 문자열 형식으로 설명된 변수 유형을 반환합니다.
//x 유형을 가져오고 반환 유형 이름
function getType(x) {
//x가 null이면 null을 반환합니다.
if (x == null) return "null"
var t = typeof x; >//x가 단순 유형인 경우 반환 유형 이름
if (t.toLocaleLowerCase() != "object") return t
//객체 클래스의 toString 메소드를 호출하여 유형 정보
//object.toString 이 메소드는 다음과 유사한 정보를 반환합니다. [객체 클래스 이름]
t = Object.prototype.toString.apply(x).toLowerCase()
//Intercept the class toString 메서드의 반환 값 중 이름 부분
t = t.substring(8, t.length - 1)
if (t.toLocaleLowerCase() != "object") return t; //x가 실제로 객체 유형인지 확인
if (x.constructor == Object) return t
//생성자에서 유형 이름 가져오기
if (typeof x.constructor == "function" )
return getFunctionName(x.constructor);
return " 알 수 없는 유형"
}
//함수 이름 가져오기
function getFunctionName(fn) {
if (fn 유형 != "function") throw "인수는 함수여야 합니다.";
var reg = /W*functions ([w$] )s*(/;
var name = reg.exec(fn) ;
if (!name) {
return '(익명)'
}
반환 이름[1]
}