美文网首页
原型链与继承

原型链与继承

作者: 史蒂夫sdf | 来源:发表于2020-10-23 09:33 被阅读0次

    原型链定义:

    原型机制就是存在于对象中的一个内部链接,它会引用其他对象。通常来说,这个链接的作用是:如果在对象上没有找到需要的属性或者方法引用,引擎就会继续在原型关联的对象上进行查找。同理,如果在后者中也没有找到需要的引用就会继续查找它的原型,以此类推。这一系列对象的链接被称为“原型链”。

    function Foo(name) {
      this.name = name;
    }
    Foo.prototype.myName = function() {
      return this.name;
    };
    function Bar(name,label) {
      Foo.call( this, name );
      this.label = label;
    }
    // 我们创建了一个新的 Bar.prototype 对象并关联到 Foo.prototype
    Bar.prototype = Object.create( Foo.prototype );
    Bar.prototype.myLabel = function() {
      return this.label;
    };
    var a1 = new Bar( "n1", "lab1" );
    var a2 = new Bar( "n2", "lab2" );
    a1.myName(); // "n1"
    a1.myLabel(); // "lab1"
    a2.myName(); // "n2"
    a2.myLabel(); // "lab2"
    
    原型示意图

    继承:

    在面向类的语言中,类可以被复制(或者说实例化)多次,就像用模具制作东西一样。实例化(或者继承)一个类就意味着“把类的行为复制到对象中”,对于每一个新实例来说都会重复这个过程。
    但是在 JavaScript 中,并没有类似的复制机制。你不能创建一个类的多个实例,只能创建多个对象,它们的原型关联的是同一个对象。这些对象之间并不会完全失去联系,它们是互相关联的。

    相关文章

      网友评论

          本文标题:原型链与继承

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