欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript之对象的类型

程序员文章站 2024-02-29 23:31:10
...

对象的类型是什么?
typeof判断对象时统一返回object
instanceof判断对象时返回true或false,无法获取类型名称

构造函数的名称就是对象的类型
var stu=new Student() ------> Student类型
var p=new Person() ------> Person类型
var nums=new Array() ------> Array类型
var obj=new Object() ------> Object类型

constructor属性:
每个对象都有一个constructor属性,该属性描述的就是其构造函数

用法
var c = obj.constructor
对象的constructor属性是其原型对象提供的,因为每个对象都链接到其原型对象上

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //对象的类型
        function Student() {}

        function Teacher() {}

        var obj1 = new Array();
        var obj2 = new Object();
        var obj3 = new Student();
        var obj4 = new Teacher();
        var obj5 = new Date();

        console.log(obj3.constructor);
        console.log(Student);
        console.log(obj3.constructor === Student);

        //通过调用对象的construtor属性,可以获取到对象的构造函数
        console.log("obj1的构造函数:" + obj1.constructor);
        console.log("obj2的构造函数:" + obj2.constructor);
        console.log("obj3的构造函数:" + obj3.constructor);
        console.log("obj4的构造函数:" + obj4.constructor);
        console.log("obj5的构造函数:" + obj5.constructor);

        //通过调用函数的name属性,获取函数名称
        console.log("obj1的类型:" + obj1.constructor.name);
        console.log("obj2的类型:" + obj2.constructor.name);
        console.log("obj3的类型:" + obj3.constructor.name);
        console.log("obj4的类型:" + obj4.constructor.name);
        console.log("obj5的类型:" + obj5.constructor.name);
    </script>
</head>

<body>

</body>

</html>

JavaScript之对象的类型