ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript は、Java の getClass() に似たメソッドを実装して、オブジェクト クラス名_javascript スキルを取得します

JavaScript は、Java の getClass() に似たメソッドを実装して、オブジェクト クラス名_javascript スキルを取得します

WBOY
WBOYオリジナル
2016-05-16 15:48:531743ブラウズ

この記事の例では、JavaScript が Java の getClass() に似たメソッドを実装してオブジェクト クラス名を取得する方法を説明します。皆さんの参考に共有してください。詳細は以下の通りです。

JavaScript には特定の型名を返す関数はありません

オブジェクトのような console.log(obj);
得られるのは [object 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 までご連絡ください。