>  기사  >  웹 프론트엔드  >  JavaScript는 Java의 getClass()와 유사한 메소드를 구현하여 객체 클래스 name_javascript 기술을 얻습니다.

JavaScript는 Java의 getClass()와 유사한 메소드를 구현하여 객체 클래스 name_javascript 기술을 얻습니다.

WBOY
WBOY원래의
2016-05-16 15:48:531744검색

이 기사의 예에서는 javascript가 java의 getClass()와 유사한 메소드를 구현하여 객체 클래스 이름을 얻는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.

자바스크립트에는 특정 유형 이름을 반환할 수 있는 함수가 없습니다

객체처럼 console.log(obj);
얻는 것은 [객체 HtmlTableCellElement]입니다. HtmlTableCellElement를 반환할 수 있는 함수를 원하는 경우 js에는 기본적으로 이러한 함수가 없습니다.

var getObjectClass = function (obj) {
 if (obj && obj.constructor && obj.constructor.toString()) {
   /*
    * for browsers which have name property in the constructor
    * of the object,such as chrome 
    */
   if(obj.constructor.name) {
    return obj.constructor.name;
   }
   var str = obj.constructor.toString();
   /*
    * executed if the return of object.constructor.toString() is 
    * "[object objectClass]"
    */
   if(str.charAt(0) == '[')
   {
     var arr = str.match(/\[\w+\s*(\w+)\]/);
   } else {
     /*
      * executed if the return of object.constructor.toString() is 
      * "function objectClass () {}"
      * for IE Firefox
      */
     var arr = str.match(/function\s*(\w+)/);
   }
   if (arr && arr.length == 2) {
      return arr[1];
   }
  }
  return undefined; 
};

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.