构造函数,原型链检测之instanceof

2020-09-07  本文已影响0人  小李不小

实列和实列的之间关联,就需要 instanceof 来进来判断
instanceof 是用来检查构造函数是否存在原型方法

    function A(){};
    let a=new A();

a 是 A(){}的 a的原型上肯定有 A.prototype A上级的原型是 object,对象的object.prototype 是null

image.png image.png

//原型之间的继承

  function A(){};

    function B(){};

    function C(){};

    let c=new C();
    B.prototype=c;
    let b=new B();
    A.prototype=b;
    let a=new A();

    console.dir(a);
    console.dir(b);
    console.log(c);

    //instanceof 是用来检查 a的原型上是否有A方法
    console.log(a instanceof C)

A.prototype指向了b,b就有了的A.protptype,然后B.prototype指向了c,C就有了B的protype,c指向了构造函数的C.prototype

image.png

构造函数通过原型的方式,直接继承了c


image.png

我们还遇到一种情况,就是想看看b的prototype上是否有A,
console.log(b instanceof A)


image.png

看上图b的原型向上找,是找不到A的,看图,b的原型只有c


image.png
上一篇下一篇

猜你喜欢

热点阅读