美文网首页
【前端】你不得不会的一道原型面试题

【前端】你不得不会的一道原型面试题

作者: 玉面小猿 | 来源:发表于2018-07-22 18:13 被阅读0次
    //prototype 面试题
    Function.prototype.a ='a';
    Object.prototype.b   ='b';
    function Person() {};
    var p =new Person();
    p.a;  
    p.b;
    
    console 初始化并打印
    先来说说Person()

    本题中Person,为Function类型,通过继承可以得到a();
    本题中Person 通过Person.prototype 访问到 constructor 和 __ proto__,接着找到我们定义的b()
    显然,Person的构造器是一个函数,Person构造函数的原型为Object
    因此通过访问 Person.prototype.__ proto__ 可以拿到b方法


    Person.prototype
    再来说说 p=new Person();

    p为Person的一个实例,p的constructor为Person();
    prototype中的内容与Person() 保持一致
    但对于函数a,由于没有在函数Person()的原型中实例化,因此无法实现继承;
    重写Person()的原型,可以得到函数a()


    实现Person()继承a

    相关文章

      网友评论

          本文标题:【前端】你不得不会的一道原型面试题

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