JavaScript 获取对象类名的实现方法
作者:半夏时间:2026-10-29 12:41:34浏览:305
本文介绍如何在 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 程序设计有所帮助。
作者最新文章
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
