如何在 JavaScript 中获取对象的类

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

index.js

class Person {}

const p1 = new Person();

console.log(p1.constructor); // 👉️ [class Person]

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

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

index.js

class Person {}

const p1 = new Person();

console.log(p1.constructor); // 👉️ [class Person]

console.log(p1 instanceof p1.constructor); // 👉️ true

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

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

index.js

class Person {
  getClassName() {
    return this.constructor;
  }
}

const p1 = new Person();

console.log(p1.getClassName()); // 👉️ [class Person]

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

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

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

index.js

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

console.log([].constructor); // 👉️ [Function: Array]

延伸阅读#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值