这是在Mozilla Firefox Web控制台上;
> Function instanceof Function;
>true
>Array instanceof Function;
>true
>String instanceof Function
>true
答案 0 :(得分:7)
因为所有构造函数都是函数,Function
,Array
和String
都是构造函数(即,您使用new
)。
答案 1 :(得分:1)
通常人们不会将构造函数用于这些类型,而是选择[]
,""
和function(){}
等文字。但是,您可以使用构造函数方法创建字符串,数组和函数:
var str = new String("Hello World");
请注意,我们正在调用一个函数 - 字符串构造函数。数组的情况也是如此:
var arr = new Array("Hello", "World");
再次,调用一个函数。这些都是Function的实例,因为我们使用了它们的构造函数。文字的情况并非如此:
var str = "Hello World";
console.log( str instanceof Function ); // false
var arr = ["Hello", "World"];
console.log( arr instanceof Function ); // false