在
JavaScript中Object是所有实体的根或Function是根?
例如,在以下源objects-functions-and-prototypes-in.html中,首先作者说“Javascript中的每个实体都是一个对象”,之后它说“任何新对象只能被创建为一个函数的实例(即使你做了”var a = new Object;’,Object是一个函数btw)“.作者基本上是矛盾的,就我所见.
而且,在许多其他JavaScript资源上也看到了同样混乱的评论.在Java中很容易,你知道任何类中的第一个实体是层次结构是Object类,但是在JavaScript中,我看到的只是混乱.
那么有人可以澄清一下对象是第一个还是功能?什么是根
解决方法
我相信行的结尾是Object.prototype,它是一个对象.这是什么让我这么认为:
Function.prototype; // the empty function object Function.prototype.__proto__; // the default Object prototype Object.prototype; // the default Object prototype Object.prototype.__proto__; // null
ECMAScript 5.1规范说明如下:
> 15.3.4 Properties of the Function Prototype Object:
The value of the [[Prototype]] internal property of the Function prototype object is the standard built-in Object prototype object
>而在15.2.4 Properties of the Object Prototype Object
The value of the [[Prototype]] internal property of the Object prototype object is
null