この記事の例では、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 プログラミング設計に役立つことを願っています。