原型链

作者: 浅笑6666 | 来源:发表于2019-11-21 11:35 被阅读0次

    1.创建对象有几种方法

    //第一种方式:字面量
    var o1 = {name:'o1'};
    var o2 = new Object({name:'o2'});
    //第二种方式:通过构造函数
    var M = function(name){this.name = name;}
    var o3 = new M('o3');
    //第三种方式:Object.create
    var p = {name:'p"};
    var o4 = Object.create(p);
    

    结果展示:

    image.png

    2.原型、构造函数、实例、原型链

    image.png
    M.prototype.constructor===M
    O3.__proto__===M.prototype
    
    原型对象的方法是被不同的实例共有的
    
    //第二种方式:通过构造函数
    var M = function(name){this.name = name;}
    var o3 = new M('o3');
    //第三种方式:Object.create
    var p = {name:'p"};
    var o4 = Object.create(p);
    
    M.prototype.say = function(){
        console.log('say hi');
    }
    var o5 = new M('o5');
    
    image.png

    Object.prototype

    • 只有函数才有prototype,对象是没有的;
    • 只有实例才有proto
    M.__proto__===function.prototype
    
    //M的构造函数是function,M是function函数的实例
    

    3.instanceof的原理

    image.png

    4.new运算符

    相关文章

      网友评论

          本文标题:原型链

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