再次邂逅原型链

    //对象与Object的关系,以及Object与null的关系?
    //所有的对象都是Object的实例,
    //null是原型链的顶层
    var obj = {}
    console.log(obj instanceof Object);//true                 //所有的对象都是Object的实例,(除了Object.prototype;Object.prototype.__proto__=null)
    console.log(typeof null);//object                         // Null是基本数据类型。null表示一个空对象指针,因此type返回对象。
    console.log(null instanceof Object);//fase                // null是对象但并不是Object的实例,null属于顶层。
    console.log(Object.prototype.__proto__ === null); //true  //Object原型对象的__proto__指向null
    //数组与Array的关系,以及Array与Object的关系?
    //所有的数组都是Array的实例,Array是Function的实例也是Object的实例。(所有的函数都是Function的实例包括Function自身)
    var arr = []
    console.log(arr instanceof Array);//true
    console.log(Array.prototype.__proto__ === Object.prototype);//true
    console.log(Array instanceof Object); //true
    //函数与Function的关系,以及Function与Object的关系?
    //所有的函数都是Function的实例包括Function自身,Object是Function的实例。
    function x() { }
    console.log(x instanceof Function);//true
    console.log(Function.prototype.__proto__ === Object.prototype);//true
    console.log(Function instanceof Object); //true

        函数.__proto__===Function.prototype(所有的函数都是Function的实例)
        Function.prototype.__proto__===Object.prototype(所有的函数都是Object的实例)

原文地址:https://www.cnblogs.com/xjt31/p/13981271.html