原型链
1.原型链示意图
图的解析
Object.prototype是原型链最顶端Object Date Math Function等内置构造函数 在原型链中 和function Foo是基本对等的, 都是有 构造起Function创建的,因此有Foo.__proto__ === Object.__proto__ === Function.__proto__ = Function.prototype;(注:Function构造器是Functiion本身)
2. 主要记住并理解两条原型链指向即可,
如图所示:
链1
Object ---> Function.prototype ---> Object.prototype ---> null
---------- 亦即
Object.__proto__ === Function.prototype
Function.prototype.__proto__ === Object.prototype
Object.prototype.proto === nullÏ
链2
new Foo() --> Foo.prototype --> Object.prototype ---> null
---------- 亦即
new Foo().__proto__ === Foo.prototype,
Foo.prototype.__proto__ === Object.prototype
Object.prototype.__prototype === null
3. 基佬Function 和 Object
原型链里面,最大的一对儿基佬就睡 Function 和 Object了,这两个都比较特殊,Object.prototype 是一切对象原型链的最顶端,
Function 是所有函数的构造器,如(Object,Date, function Foo)等,最牛逼的是,Function 本身 的构造器也是他自己。