JavaScript中的面向对象----继承
2010-09-14 13:24:05 来源:WEB开发网1、对象冒充
functionClassA(sColor){
this.color=sColor;
this.sayColor=function(){
alert(this.color);
}
}
functionClassB(sColor,sName){
this.newMethod=ClassA;
this.newMethod(sColor);
deletethis.newMethod;
this.name=sName;
this.sayName=function(){
alert(this.name);
}
}
varobjB=newClassB("colorofobjB","nameofobjB");
objB.sayColor();
2、call方法
functionClassA(sColor){
this.color=sColor;
this.sayColor=function(){
alert(this.color);
}
}
functionClassB(sColor,sName){
// this.newMethod=ClassA;
// this.newMethod(sColor);
// deletethis.newMethod;
ClassA.call(this,sColor);
this.name=sName;
this.sayName=function(){
alert(this.name);
}
}
varobjB=newClassB("colorofobjB","nameofobjB");
objB.sayColor();
3、apply方法
functionClassA(sColor){
this.color=sColor;
this.sayColor=function(){
alert(this.color);
}
}
functionClassB(sColor,sName){
// this.newMethod=ClassA;
// this.newMethod(sColor);
// deletethis.newMethod;
ClassA.apply(this,newArray(sColor));
this.name=sName;
this.sayName=function(){
alert(this.name);
}
}
varobjB=newClassB("colorofobjB","nameofobjB");
objB.sayColor();
4、原型链方法
functionClassA(){
}
ClassA.prototype.color="color";
ClassA.prototype.sayColor=function(){
alert(this.color);
}
functionClassB(){
}
ClassB.prototype=newClassA();
ClassB.prototype.name="name";
ClassB.prototype.sayName=function(){
alert(this.name);
}
varobjB=newClassB();
objB.color="colorofobjB";
objB.name="nameofobjB";
objB.sayColor();
5、混合方式
functionClassA(sColor){
this.color=sColor;
}
ClassA.prototype.sayColor=function(){
alert(this.color);
}
functionClassB(sColor,sName){
ClassA.call(this,sColor);
this.name=sName;
}
ClassB.prototype=newClassA();
ClassB.prototype.sayName=function(){
alert(this.name);
}
varobjB=newClassB("colorofobjB","nameofobjB");
objB.sayColor();
Tags:JavaScript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接