为什么typeof Array返回“函数”而typeof [数组变量]返回“对象”?

时间:2019-10-17 10:53:48

标签: javascript arrays

我有机会遇到这个问题,但是找不到答案。

var arr = [];

为什么typeof Array返回"function"typeof arr返回"Object"

任何人都可以解释一下。

1 个答案:

答案 0 :(得分:1)

编写typeof Array时,表示您正在获取构造函数的类型。 class的背后是构造函数。让我举个例子:

class Person {
    constructor(firstName, lastName, address) {
        this.firstName= firstName;
        this.lastName = lastName;
        this.address= address;
    }

    getFullName () {
        return this.firstName + " " + this.lastName ;
    }
}

并创建该类的实例:

let car = new Person ("Jon", "Freeman", "New York");

在上面的代码中,我们创建了一个变量car,该变量引用了在类中定义的函数构造函数:

function Person (firstName, lastName, address) {
        this.firstName = firstName,
        this.lastName = lastName,
        this.address = address,
        this.getFullName = function () {
            return this.firstName+ " " + this.lastName;
        }
}

这就是typeof Array返回function的原因。