JavaScript中的继承机制
2009-10-28 00:00:00 来源:WEB开发网4,原型链
function ClassA() {
}
ClassA.prototype.color = "red";
ClassA.prototype.showColor = function(){
alert(this.color);
};
function ClassB(){
}
ClassB.prototype = new ClassA();
ClassB.prototype.name = "asdf"; //添加新属性和方法必须出现在对ClassB.prototype赋值完成后。
ClassB.prototype.showName = function(){
alert(this.name);
};
var objA = new ClassA();
var objB = new ClassB();
objA.color = "red";
objB.color = "blue";
objB.name = "adf";
objA.showColor();
objB.showColor();
objB.showName();
注意:调用ClassA的构造函数时,没有给它传递参数。这在原型链中是标准做法。要确保构造函数没有任何参数。
原型链不支持多重继承。
5,混合方式
就是将对象冒充与原型链方式进行组合。
function ClassA(sColor) {
this.color = sColor;
}
ClassA.prototype.showColor = function() {
alert(this.color);
};
function ClassB(sColor, sName) {
ClassA.call(this, sColor);
this.name = sName;
}
ClassB.prototype = new ClassA();
ClassB.prototype.showName = function() {
alert(this.name);
};
var objA = new ClassA("red");
var objB = new ClassB("blue", "name");
objA.showColor();
objB.showColor();
objB.showName();
附:动态原型方法不能实现继承机制。
Tags:JavaScript 继承 机制
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接