原型链

作者: 前端_酒館 | 来源:发表于2021-05-26 09:27 被阅读0次

    原型链: 是整个面向对象的基础

    • 创建对象有几种方法:
    var o1 = {name:'o1'}
    var o11 = new Object({name:'o11'});
    
    var M = function(){this.name = 'o2'};
    var o2 = new M()
    
    var P = {name:'o3'};
    var o3 = Object.create(P)
    
    • 原型、构造函数、实例、原型链:(这块的演示可以用M来进行演示一波原型、构造函数、实例之间的关系)

    在控制台输入o2(实例)、M(构造函数)、M.prototype(原型对象)、M.prototype.constructor === M(判断M的原型对象的constructor是否严格等于M)、

    o2.__proto__ === M.prototype()
    
    • 构造函数: 凡是通过new操作后面的函数,这个函数就不是普通的函数,即使里面没有name,任何一个函数只要被new使用了就叫构造函数。 (构造函数是可以使用new运算符生成实例)

    构造函数和原型对象的关系:

    • 函数都有一个prototype属性,这是在声明一个函数的时候js自动给它添加prototype属性,prototype指的就是原型对象;
    • 原型对象会以constructor(构造器)来区分是被哪个构造函数引用;
    • 实例: 上面的o1、o11、o2就是实例
    • 原型链: 实例通过prototype和proto往上查找相关联的对象直到object.prototype的过程为原型链。 (工作原理:通过原型链的方式找到原型对象,原型对象的方法被不同的实例所共有的为原型链的工作原理)
    • instanceof的原理: 判断实例对象的proto和生成该实例的构造函数的prototype是不是引用的同一个地址

    如果此文对你有用请动动你的小手点个赞!谢谢!!!

    相关文章

      网友评论

          本文标题:原型链

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