使用apply或call实现借用构造函数实现继承

//facade 一个输出函数
function log() {
    console.log([].join.call(arguments, ','));
}

//父类
function Parent(name) {
    this.name = name || "Adam";
}

//为父类原型上添加一个方法
Parent.prototype.say = function() {
    return this.name;
}

//子类
function Child(name) {
    //调用父类的构造函数,并作用于子类
    Parent.apply(this,arguments);
}

//用父类的实例覆盖子类的prototype以达到继承父类原型上的方法
Child.prototype = new Parent();

//测试效果
var kid = new Child("patick");
log(kid.name);
log(kid.say());
delete kid.name;
log(kid.name);
log(kid.say());
原文地址:https://www.cnblogs.com/mtima/p/3176847.html