我有机会遇到这个问题,但是找不到答案。
var arr = [];
为什么typeof Array
返回"function"
而typeof arr
返回"Object"
?
任何人都可以解释一下。
答案 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
的原因。