function parent(){ this.x=10; } function child(){ var parentObj=new parent(); for(var p in parentObj)this[p]=parentObj[p]; } var childObj=new child(); alert(childObj.x);
类冒充
function parent(){ this.x=10; } function child(){ this.parent=parent; this.parent(); deletethis.parent; } var childObj=new child(); alert(childObj.x);
function parent(){ this.x=10; } function child(){ parent.call(this); } var childObj=new child(); alert(childObj.x);
原型抄写
function parent(){ } parent.prototype.x=1;
function child(){ } for(var p in parent.prototype)child.prototype[p]=parent.prototype[p]; child.prototype.y=2;
var childObj=new child(); alert(childObj.x);
元类继承
function parent(string){ var child=new Function("this.x=10;"+string); return child; } var child=new parent("this.y=20;");
var childObj=new child(); alert(childObj.y);
原型继承
引用型原型继承
function parent(){ this.x=10; } function child(){ } child.prototype=new parent(); var childObj=new child(); alert(childObj.x);
复制型原型继承
function parent(){ this.x=10; } function child(){ var ret=new parent(); ret.y=20; return ret; }