javascript实现继承的多种方式
2009-06-02 09:38
639 查看
对象冒充
function ClassA(sColor){
this.color=sColor;
this.sayColor=function(){
window.alert(this.color);
};
}
function ClassB(sColor,sName){
this.newMethod=ClassA;
this.newMethod(sColor);
delete this.newMethod;
this.name=sName;
this.sayName=function(){
window.alert(this.name);
};
}
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
call方法
function ClassA(sColor){
this.color=sColor;
this.sayColor=function(){
window.alert(this.color);
};
}
function ClassB(sColor,sName){
ClassA.call(this,sColor);
this.name=sName;
this.sayName=function(){
window.alert(this.name);
};
}
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
apply方法
function ClassA(sColor){
this.color=sColor;
this.sayColor=function(){
window.alert(this.color);
};
}
function ClassB(sColor,sName){
//ClassA.apply(this,new Array(sColor));
ClassA.apply(this,arguments);
this.name=sName;
this.sayName=function(){
window.alert(this.name);
};
}
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
混合模式
function ClassA(sColor){
this.color=sColor;
}
ClassA.prototype.sayColor=function(){
window.alert(this.color);
};
function ClassB(sColor,sName){
ClassA.call(this,sColor);
this.name=sName;
}
ClassB.prototype=new ClassA();
ClassB.prototype.sayName=function(){
window.alert(this.name);
};
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
function ClassA(sColor){
this.color=sColor;
this.sayColor=function(){
window.alert(this.color);
};
}
function ClassB(sColor,sName){
this.newMethod=ClassA;
this.newMethod(sColor);
delete this.newMethod;
this.name=sName;
this.sayName=function(){
window.alert(this.name);
};
}
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
call方法
function ClassA(sColor){
this.color=sColor;
this.sayColor=function(){
window.alert(this.color);
};
}
function ClassB(sColor,sName){
ClassA.call(this,sColor);
this.name=sName;
this.sayName=function(){
window.alert(this.name);
};
}
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
apply方法
function ClassA(sColor){
this.color=sColor;
this.sayColor=function(){
window.alert(this.color);
};
}
function ClassB(sColor,sName){
//ClassA.apply(this,new Array(sColor));
ClassA.apply(this,arguments);
this.name=sName;
this.sayName=function(){
window.alert(this.name);
};
}
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
混合模式
function ClassA(sColor){
this.color=sColor;
}
ClassA.prototype.sayColor=function(){
window.alert(this.color);
};
function ClassB(sColor,sName){
ClassA.call(this,sColor);
this.name=sName;
}
ClassB.prototype=new ClassA();
ClassB.prototype.sayName=function(){
window.alert(this.name);
};
var objA=new ClassA("red");
var objB=new ClassB("blue","Nicholas");
objA.sayColor();
objB.sayColor();
objB.sayName();
相关文章推荐
- JavaScript 面向对象(封装、继承、多态)多种方式实现完全总结
- JavaScript中实现继承的三种方式和实例
- 从继承方式的实现看javascript语言的设计初衷
- JavaScript程序中实现继承特性的方式总结
- JavaScript程序中实现继承特性的方式总结
- 实现JavaScript中继承的三种方式
- javascript实现继承的一种方式
- (转)js(javascript) 继承的5种实现方式
- JavaScript实现继承的方式和原理
- 深入理解JavaScript继承的多种方式和优缺点
- JavaScript是如何实现继承的(六种方式)
- js实现继承的多种方式
- javascript实现继承的方式
- javascript 中实现继承的六种方式
- javascript中实现对象继承的五种方式详解
- JavaScript的弱类对象及继承实现方式
- JavaScript中实现继承的几种方式
- JavaScript实现继承的混合方式
- JavaScript实现继承(六种方式)
- JavaScript继承实现方式一览