JavaScript 获取对象类名的实现方法

作者:半夏

时间:2026-10-29

浏览:304

本文介绍如何在 JavaScript 中实现类似 Java getClass() 的功能以获取对象类名。由于 JS 默认无直接返回类型名的函数,通过判断 constructor.name 或解析 constructor.toString() 字符串可提取类名,兼容 Chrome、IE 及 Firefox 等浏览器。

文章目录

JavaScript 获取对象类名的实现方法

本文介绍一种在 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 程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章