내 2 ¢! 실제로, 내가 여기에 던지는 이유 중 일부는 긴 답변 목록에도 불구하고 조금 더 많은 all in one
유형의 솔루션 을 제공하고 더 많은 것을 포함하도록 확장하는 방법에 대한 피드를 다시 얻는 것입니다.real types
입니다.
다음과 같은 솔루션을 사용하여 위에서 언급 한 것처럼 여기에있는 몇 가지 솔루션을 결합하고 가능한 경우 jQuery 정의 객체 의 값을 반환하기위한 수정 사항 을 통합했습니다 . 또한 기본 Object 프로토 타입에 메소드를 추가합니다. 다른 확장 프로그램을 방해 할 수 있기 때문에 종종 금기 사항이라는 것을 알고 있지만 . 이 방법이 마음에 들지 않으면 원하는 곳에서 기본 함수를 복사하고 전달할 인수 매개 변수로 모든 변수를 바꾸십시오 (예 : arguments [0]).jQueryuser beware
this
;(function() { // Object.realType
function realType(toLower) {
var r = typeof this;
try {
if (window.hasOwnProperty('jQuery') && this.constructor && this.constructor == jQuery) r = 'jQuery';
else r = this.constructor && this.constructor.name ? this.constructor.name : Object.prototype.toString.call(this).slice(8, -1);
}
catch(e) { if (this['toString']) r = this.toString().slice(8, -1); }
return !toLower ? r : r.toLowerCase();
}
Object['defineProperty'] && !Object.prototype.hasOwnProperty('realType')
? Object.defineProperty(Object.prototype, 'realType', { value: realType }) : Object.prototype['realType'] = realType;
})();
그런 다음 간단히 다음과 같이 쉽게 사용하십시오.
obj.realType() // would return 'Object'
obj.realType(true) // would return 'object'
참고 : 인수에는 1 개의 인수가 있습니다. 부울 인 경우 true
반환 값은 항상 소문자 입니다.
더 많은 예 :
true.realType(); // "Boolean"
var a = 4; a.realType(); // "Number"
$('div:first').realType(); // "jQuery"
document.createElement('div').realType() // "HTMLDivElement"
다른 라이브러리 (Moo, Proto, Yui, Dojo 등)로 객체가 생성 된 시간을 정의하는 것과 같이 도움이 될만한 추가 사항이 있으면 언제든지 의견을 말하거나 편집하여 더 많이 사용하십시오. 정확하고 정확합니다. 또는 GitHub내가 그것을 위해 만든 롤오버 하고 알려주세요. cdn min 파일에 대한 빠른 링크도 있습니다.
typeof new RegExp(/./); // "function"
로 Chrome 의 문제는 Chrome 14에서 수정 된 것으로 보입니다.