浅析JavaScript获得Object对象(自定义对象)的类型名方法

本文探讨了在JavaScript中如何获取自定义对象的类型名,指出typeof操作符对于自定义类型不足之处。通过深入研究,发现对象的constructor属性指向其构造函数,从而可以获取类型名。文章提供了从基本方法到优化过程,包括使用正则表达式和处理浏览器兼容性的解决方案,最终封装了一个名为getFnName的方法来实现这一目标。
摘要由CSDN通过智能技术生成

在写代码的过程中 我们经常会遇到这样一个问题–如何获得某一个对象的类型名。

JavaScript是一种弱类型的语言,通常,我们获取一个对象的类型名会想到typeof方法。但是,当我们想要获得一个自定义类型的兑现的类型名的时候,typeof就有点不够看了。我们先来做一个简单的测试。

<!DOCTYPE html>
<html><head>
<script>
     /*一个叫做Student的构造函数*/
    function Student (argument) {
    
        // body...
    }

    /*new一个Student对象*/
    var stu = new Student("argument");

    console.log(typeof stu);
    /*控制台打印的结果是:object*/

</script> 
</head>
<body></body></html>

我们虽然知道了stu是一个对象,但是我们却不知道它究竟是一个怎样的对象,所以我们还需要更深层次的处理。

那到底需要怎么做呢?我们知道,在js里,每一个对象都有一个constructor的属性,这个属性直接连接到该对象的构造函数。也就是说,我们可以通过对象的constructor属性来找到它所对应的构造函数。先来看一段代码:

<!DOCTYPE html>
<html><head>
<script>
     /*一个叫做Student的构造函数*/
    function Student (argument) {
    
        // body...
    }

    /*new一个Student对象*/
    var stu = new Student("argument");

    /*这里改成了constructor*/
    console.log(stu.constructor);

    /*
    * 控制台打印结果:
    * function Student(argument) {
    *   // body...
    * }
    */

</script> 
&l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值