javascript 继承

function SuperType(name) {
    this.name = name;
    this.colors = ["red", "blue", "green"];
}
SuperType.prototype.sayName = function() {
    alert(this.name);
}

// 方式一
function SubType(age) {
    this.age = age;
}
SubType.prototype = new SuperType();
SubType.prototype.syaAge = function() {
    alert(this.age);
}

// 方式二
function SubType() {
    SuperType.call(this, "Jerry");
}

// 方式三,推荐
function SubType(name, age) {
    SuperType.call(this, name);
    this.age = age;
}
SubType.prototype = new SuperType();
SubType.prototype.sayAge = function() {
    alert(this.age);
}

// 方式三,推荐
function object(o) {
    function F() { };
    F.prototype = o;
    return new F();
}
function inheritPrototype(subType, superType) {
    var prototype = object(superType.prototype);
    prototype.constructor = subType;
    subType.prototype = prototype;
}
function SubType(name, age) {
    SuperType.call(this,name);
    this.age = age;
}
inheritPrototype(SubType, SuperType);
SubType.prototype.sayAge = function() {
    alert(this.age);
}

 

原文地址:https://www.cnblogs.com/tongqj/p/4083048.html