zoukankan      html  css  js  c++  java
  • JavaScript 继承

    继承

    有以下两种基本方法可以实现继承:

    一、原型链

    优点: 原型链可实现对原型属性和方法的继承(多个子类实例共享)

    → 函数复用

    例:

    function SuperType() {}
    SuperType.prototype.sayHello = function() {
        alert('Hello!');
    };  
    
    function SubType() {}
    SubType.prototype = new SuperType();
    Subtype.constructor = SubType;
    
    var instance1 = new SubType();
    var instance2 = new SubType();

    instance1 和 instance2共享父类方法sayHello()

    二、借用构造函数

    优点:可实现实例属性的继承

    → 确保每个实例都有它自己的属性

    例:

    function SuperType(name) {
         this.name= name;   
    }
    
    function SubType(name, age) {
         SuperType.call(this, name);
         this.age = age;   
    }
    
    var instance1 = new SubType('Mike', 18);
    var instance2 = new SubType('Mary', 17);

    instance1和instance2都拥有自己的属性name

    因此,融合以上两种方式,成为了最常用的继承模式:

    组合模式

    function SuperType(name) {
        this.name= name;   
    }
    
    SuperType.prototype.sayHello = function() {
        alert('Hello!');
    }; 
    
    function SubType(name, age) {
        SuperType.call(this, name);
        this.age = age;   
    }
    
    SubType.prototype = new SuperType();
    SubType.prototype.constructor = SubType;
    
    var instance = new SubType('Mike', 18);
  • 相关阅读:
    第七章11
    第七章10
    第七章9
    第七章8
    第七章7
    第七章6
    第七章5
    第七章例7-13
    第七章例7-12
    第七章例7-11
  • 原文地址:https://www.cnblogs.com/dreamerjdw/p/6225952.html
Copyright © 2011-2022 走看看