日期:2014-05-16 浏览次数:20397 次
1.类抄写
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);
?
2.类冒充
function parent(){ this.x=10; } function child(){ this.parent=parent; this.parent(); delete this.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);
?
3.原型抄写
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);
?4.元类继承
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);
?
?5.原型继承
5.1引用型原型继承
function parent(){ this.x=10; } function child(){ } child.prototype=new parent(); var childObj=new child(); alert(childObj.x);
?
5.2复制型原型继承
function parent(){ this.x=10; } function child(){ var ret=new parent(); ret.y=20; return ret; } var childObj=new child(); alert(childObj.x);
??