Object instanceof Object
true
Object instanceof Function
true
Function instanceof Object
true
Function instanceof Function
true那么,如果函数是一个对象,而对象又是一个函数,那么
Function === Object和Function == Object是假的吗?
我确实理解检查对象的实例与比较是不同的。所以这里的问题是,如果两个对象(实际上是类型)是彼此的实例,那么类型不应该是相同的吗?
注意: Object不是Number或Array的实例,而是Function的实例。
发布于 2010-01-05 08:15:27
JavaScript中的一切都是Object,因为JavaScript是一种面向对象的语言。Function是Object的实例,因为一切都是Object的实例。很简单。但是,初始化其他对象(构造函数)的对象在JavaScript中也是Function,因此Object也是Function是有意义的。
想想看:
var obj = new Object();本例中的Object被用作Function,不是吗?因此,虽然从理论上讲,Object应该是语言中的最底层对象,但如果没有Functions (双关语!),JavaScript就不能工作,所以您需要将两者放在同一级别。Object需要是Function的一个实例,因为它是一个构造函数,它需要创建更多的自身实例。
function FooBar() {}上面的FooBar类既是Object又是Function的实例,因为它两者都是。同样的逻辑也适用于内置的Object和Function对象;它们都是这两者的实例。
呼,令人迷惑。这有什么意义吗?
https://stackoverflow.com/questions/2003183
复制相似问题