<script>
/*
*寄生式继承 继承原型
*传递参数 subClass 子类
*传递参数 superClass 父类
*/
//宿主
function inheritObject(o){
function fn(){}
fn.prototype = o;
return new fn
}
//继承转换原型和构造函数
function inheritPrototype(subClass,superClass){
var p = inheritObject(superClass.prototype);
p.constructor = subClass;
subClass.prototype = p;
}
//父级构造函数
function superClass(name){
this.name = name;
this.colors = ['red','blue','green'];
}
//父级的原型
superClass.prototype.getName = function(){
console.log(this.name);
}
//子级构造函数
function subClass(name,time){
superClass.call(this,name);
this.time = time;
}
//子级继承父级的原型
//先函数转换,然后进行实例化
//或者先实例化,然后用__proto__属性进行转换(__proto__不建议使用)
inheritPrototype(subClass,superClass);
//给子级原型添加功能
subClass.prototype.getTime = function(){
console.log(this.time);
}
var b1 = new subClass('car',2018);
console.log( b1 );
b1.getName();
</script>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步