Object instanceof Object
true
Object instanceof Function
true
Function instanceof Object
true
Function instanceof Function
true
Run Code Online (Sandbox Code Playgroud)
所以如果Function是一个Object而Object是一个函数怎么来的呢
Function === Object并且Function == Object都是假的?
我知道检查对象的实例与比较不一样.所以这里的问题是如果两个对象(实际上是类型)是彼此的实例的情况下的模糊性,那么类型不应该相同吗?
注意:Object不是Number或Array的实例,只是Function的一个实例.
Ann*_*nie 17
JavaScript中的所有东西都继承自Object.我们可以说Object是每个变量的超类或更好的超级构造函数,并且所有东西都是Object的实例.Object构造函数是Function,但Function是Object的instanceof.这意味着这些断言总是正确的:
(Object instanceof Function) === (Function instanceof Object)上面的例子是正确的,因为Object是一个构造函数,JavaScript中的构造函数总是一个Function.同时,每个Function都有自己的原型,而原型总是从Object.prototype开始继承.Function构造函数是一个Function本身,函数原型是一个函数(){};
(Function.prototype instanceof Object) === (function(){} instanceof Object)
一切都Object在JavaScript中,因为JavaScript是一种面向对象的语言.Function是一个实例,Object因为一切都是一个实例Object.很简单.然而,初始化其他对象(构造函数)对象也是Function■在JavaScript,因此它将使意义Object也成为一个Function.
想一想:
var obj = new Object();
Run Code Online (Sandbox Code Playgroud)
Object在这种情况下用作Function,是不是?因此,理论上,虽然Object应该是语言中最低级别的对象,但JavaScript不能在没有Functions(双关语!)的情况下运行,因此您需要两者都处于同一级别.Object需要是一个实例,Function因为它是一个构造函数,它需要创建更多的自身实例.
function FooBar() {}
Run Code Online (Sandbox Code Playgroud)
在FooBar上面的类既是一个实例Object和Function,因为它是两者兼而有之.相同的逻辑适用于内置Object和Function对象; 他们是两者的例子.
笨蛋,令人困惑.这有什么意义吗?
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |