原型继承、原型链

52 阅读1分钟

原型继承

原型继承,顾名思义,就是让原型对象中继承其他构造函数的属性和方法,直接看代码

//原型继承
    function person () {
        this.eyes = 2;
        this.head = 1;
    }
    
    //男人和女人,都要继承人所拥有的属性
    function woman () {

    }
    function man () {

    }
    woman.prototype = new person();//通过new实例化来继承,就会新开辟一个空间地址,这样修改时不影响person
    woman.prototype.constructor = woman;//赋值之后,要记得让原型对象中的constructor指回构造函数
    woman.prototype.baby = function() {//这里给woman的原型对象上挂载,就不会影响到man的
        console.log('baby');
    }
    console.log(woman.prototype);
    console.log(man.prototype);

> 原型链

解释:

原型链是一种查找规则,用来查找当前对象身上是否存在某个方法,如果在当前对象中找不到,就会往上寻找,而它是通过__proto__对象原型来查找的(每一个对象都会有自己的原型__proto__),最终如果还没找到,就会到null。

image.png