如何在 JavaScript 中获取对象的类

在 JavaScript 中获取对象的类

How to get an Object’s Class in JavaScript

使用对象的constructor属性来获取对对象类的引用,例如obj.constructor. constructor属性返回对创建实例对象的构造函数的引用。

索引.js
class Person {} const p1 = new Person(); console.log(p1.constructor); // 👉️ [class Person]

我们使用
Object.constructor
属性来获取我们用来创建对象实例的类的引用。

您还可以使用运算符验证该constructor属性是否指向正确的类instanceof

索引.js
class Person {} const p1 = new Person(); console.log(p1.constructor); // 👉️ [class Person] console.log(p1 instanceof p1.constructor); // 👉️ true

运算符检查右侧的instanceof值是否出现在左侧值的原型中。

另一种方法是在类上创建一个方法。

索引.js
class Person { getClassName() { return this.constructor; } } const p1 = new Person(); console.log(p1.getClassName()); // 👉️ [class Person]

如果您需要经常访问对象的类,这是一种更好的方法。这有助于我们将 JavaScript 的一些内部结构抽象成一个方法。

请注意,所有对象(使用创建的对象除外)都具有构造函数属性。 Object.create(null)

在没有构造函数的情况下创建的对象具有指向Object特定类型的主构造函数的构造函数属性。

索引.js
console.log({}.constructor); // 👉️ [Function: Object] console.log([].constructor); // 👉️ [Function: Array]

进一步阅读

发表评论