在JavaScript中,我们经常需要获取一个对象或者类的名称。例如,在某些情况下,我们需要根据类的名称来进行代码调试、动态创建类实例等操作。本文将介绍如何在JavaScript中获取对象或类的名称,并提供示例代码和指导意义。
获取对象的名称
要获取对象的名称,可以使用Object.prototype.toString
函数。该函数返回一个字符串,其中包含了对象的类型信息,如下所示:
const obj = {}; console.log(obj.toString()); // [object Object]
这里返回的字符串包含了对象的类型信息[object]
以及对象的构造函数名称Object
。因此,我们可以通过正则表达式来提取出对象的构造函数名称,从而获取对象的名称,如下所示:
const obj = {}; const objName = obj.constructor.toString().match(/function\s([^(]+)/)[1]; console.log(objName); // Object
在上面的代码中,我们首先获取了对象的构造函数Object
,然后使用正则表达式提取出构造函数的名称。
需要注意的是,对于自定义的类,由于构造函数名称通常会被修改为类名,因此无法直接通过上述方法来获取类名。这种情况下,建议在类定义时手动添加一个类名属性,如下所示:
class MyClass { constructor() { this.name = 'MyClass'; } } const obj = new MyClass(); console.log(obj.name); // MyClass
获取类的名称
要获取类的名称,可以使用class.name
属性。该属性返回类的名称,如下所示:
class MyClass {} console.log(MyClass.name); // MyClass
需要注意的是,如果在类定义之前尝试访问class.name
属性,将会返回undefined
。
指导意义
本文介绍了如何在JavaScript中获取对象或类的名称。通过掌握这些技巧,我们可以更加轻松地进行代码调试、动态创建类实例等操作。需要注意的是,在获取自定义类的名称时,建议手动添加一个类名属性,以免出现无法预料的行为。
示例代码
下面是一个完整的示例代码,演示了如何获取对象和类的名称:
-- -------------------- ---- ------- ----- ------- - ------------- - --------- - ---------- - - ----- --- - --- ---------- ---------------------------------------------------------------------- -- ------- ---------------------- -- ------- -------------------------- -- -------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/10311