Javascript 为什么typeof函数返回“;功能;?
如果数组和函数都是对象子类型,那么为什么Javascript 为什么typeof函数返回“;功能;?,javascript,object,types,typeof,Javascript,Object,Types,Typeof,如果数组和函数都是对象子类型,那么为什么typeof function返回“function”和typeof array返回“object”?是因为当它与实现[[Call]]的对象交互时,定义了typeof的不同行为(即函数).非常难看,但答案正确:因为ECMAScript规范这么说。 请记住,在较低级别上,每个数组基本上都只是具有“长度”属性的对象 如果要检查给定对象是否为数组,请使用。请显示完整的代码示例。@Ryan此处需要哪一个完整的代码?因为。我真的不认为你会得到比这个更好的答案。多年前
typeof function
返回“function”
和typeof array
返回“object”
?是因为当它与实现[[Call]]
的对象交互时,定义了typeof
的不同行为(即函数).非常难看,但答案正确:因为ECMAScript规范这么说。
请记住,在较低级别上,每个数组基本上都只是具有“长度”属性的对象
如果要检查给定对象是否为数组,请使用。请显示完整的代码示例。@Ryan此处需要哪一个完整的代码?因为。我真的不认为你会得到比这个更好的答案。多年前,当定义
typeof
时,Brendan Eich决定应该将函数与其他对象区分开来,但大多数其他对象不应该彼此区分开来。与其他对象相比,函数对象确实有一个根本的区别:它们是可调用的。typeof
不会返回对象的构造函数,如果这是您所要求的。这是一些特定类型的检查。比较(函数(){})。构造函数
是函数
和[]的方式。构造函数
是数组
,以及对象的(函数(){})实例
。