美文网首页
原型链补充

原型链补充

作者: Vampire丶_L | 来源:发表于2018-06-12 15:48 被阅读0次

    通过近期的一次笔试发现我对原型链的一些属性掌握的不是很好,所以再来写一片文章补充;

    关于__proto__属性

    下面的请谨记
    1,每个对象都有名为__proto__属性
    2,每个对象的__proto__属性都指向自身构造函数的prototype
    来看代码:

            function func(){};
            var f1 = new func();
    
            //f1是func的实例,所以f1的__proto__指向func的原型对象
            console.log(f1.__proto__ === func.prototype);//true
    
            //func的__proto__指向定义它的Function.prototype
            console.log(func.__proto__ === Function.prototype);//true
    
            //Function由自身构造
            console.log(Function.__proto__ === Function.prototype);//true
            //由上面三个 true可知所有构造函数的__proto__
    
            //prototype也是对象,所以它的__proto__指向Object.prototype 
            console.log(Function.prototype.__proto__ === Object.prototype);//true
            console.log(func.prototype.__proto__ === Object.prototype);//true 
            //由这两行可知:所有构造函数的prototype的__proto__都指Object.prototype
      
            //Object也是构造函数,所以同上构造函数的__proto__ 指向Function.prototype
            console.log(Object.__proto__  === Function.prototype)//true  
    
            //Object.prototype作为最终的源头,它的__proto__是null
            console.log(Object.prototype.__proto__ === null);//true
    
            var  a = {};
            
            //由于a是以字面量方式创建的对象,所以不需要经过Function,a.__proto__属性直接指向Object.prototype
            console.log(a.__proto__ === Object.prototype)
            console.log(a.__proto__.__proto__ === null);//true
            console.log(a.__proto__.constructor === Object);//true
            console.log(a.__proto__.constructor.__proto__ === Function.prototype);//true
            console.log(a.__proto__.constructor.__proto__.__proto__ === Object.prototype);//true
            console.log(a.__proto__.constructor.__proto__.__proto__.__proto__ === null);//true
     console.log(a.__proto__.constructor.__proto__.__proto__.constructor.__proto__ === Function.prototype);//true
    

    最后附上一张图:


    1030655-20161031041705971-1605480841.jpg

    相关文章

      网友评论

          本文标题:原型链补充

          本文链接:https://www.haomeiwen.com/subject/fwsleftx.html