WEB开发网
开发学院网页设计JavaScript JavaScript中的继承机制 阅读

JavaScript中的继承机制

 2009-10-28 00:00:00 来源:WEB开发网   
核心提示: 4,原型链functionClassA(){}ClassA.prototype.color="red";ClassA.prototype.showColor=function(){alert(this.color);};functionClassB(){}ClassB.pro

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();

附:动态原型方法不能实现继承机制。

上一页  1 2 3 

Tags:JavaScript 继承 机制

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接