JavaScript如何用最简单的方法获取任意对象的类名?(包括自定义类) 判断对象类型?

转载自CSDN:JavaScript如何用最简单的方法获取任意对象的类名?(包括自定义类) 判断对象类型?


实例类里面有什么东西?

    想要获取实例的类名,就看看实例类里面有什么东西,他有没有类名?

// 先创建一个类

class myClass {}

// 原生的 typeof 不能准确判断这个类是什么类的

console.log(typeof new myClass());

// 我们控制台输出一下这个类

console.log(new myClass());

    输出结果

'object'

myClass {}

  [[Prototype]]: Object

    constructor: class myClass

      length: 0

      name: "myClass"

      prototype: {constructor: ƒ}

      arguments: (...)

      caller: (...)

      [[FunctionLocation]]: VM2343:1

      [[Prototype]]: ƒ ()

      [[Scopes]]: Scopes[2]

    [[Prototype]]: Object


获取类名

  可以看到,我们想要获取的类名是 constructor 里面的 name 的值。

    如何获取 constructor ?可以参考:JS中(constructor属性)

    接下来我们打印输出看看是不是我们想要的结果?

console.log(new myClass().constructor.name);

console.log("".constructor.name);

console.log((0).constructor.name);

console.log(new Object().constructor.name);

console.log((function(){}).constructor.name);

    输出结果:

'myClass'

'String'

'Number'

'Object'

'Function'

有了类名,我们就可以通过类名来判断任意对象的类型了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容