首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对象和函数非常混乱

对象和函数非常混乱
EN

Stack Overflow用户
提问于 2010-01-05 07:49:48
回答 7查看 798关注 0票数 13
代码语言:javascript
运行
复制
Object instanceof Object
true
Object instanceof Function
true
Function instanceof Object
true
Function instanceof Function
true

那么,如果函数是一个对象,而对象又是一个函数,那么

Function === ObjectFunction == Object是假的吗?

我确实理解检查对象的实例与比较是不同的。所以这里的问题是,如果两个对象(实际上是类型)是彼此的实例,那么类型不应该是相同的吗?

注意: Object不是Number或Array的实例,而是Function的实例。

EN

Stack Overflow用户

发布于 2010-01-05 08:15:27

JavaScript中的一切都是Object,因为JavaScript是一种面向对象的语言。FunctionObject的实例,因为一切都是Object的实例。很简单。但是,初始化其他对象(构造函数)的对象在JavaScript中也是Function,因此Object也是Function是有意义的。

想想看:

代码语言:javascript
运行
复制
var obj = new Object();

本例中的Object被用作Function,不是吗?因此,虽然从理论上讲,Object应该是语言中的最底层对象,但如果没有Functions (双关语!),JavaScript就不能工作,所以您需要将两者放在同一级别。Object需要是Function的一个实例,因为它是一个构造函数,它需要创建更多的自身实例。

代码语言:javascript
运行
复制
function FooBar() {}

上面的FooBar类既是Object又是Function的实例,因为它两者都是。同样的逻辑也适用于内置的ObjectFunction对象;它们都是这两者的实例。

呼,令人迷惑。这有什么意义吗?

票数 5
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2003183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档