您的位置:首页 > Web前端 > JavaScript

温故而知新--ECMAScript and javascript基础二

2008-01-22 15:15 591 查看
ECMA多重继承支持:




function ClassX()...{


this.messageX="This is the X message.";






if(typeof ClassX._initialized=="undefined")...{






ClassX.prototype.sayMessageX=function()...{


alert(this.messageX);


};




ClassX._initialized=true;


}


}






function ClassY()...{


this.messageY="This is the Y message.";






if(typeof ClassY._initialized=="underfined")...{






ClassY.prototype.sayMessageY=function()...{


alert (this.messageY);


};




ClassY._ini8tiaized=true;


}


}

ClassX和ClassY类都是小类,都只有一个属性和一个方法。假设现有ClassZ类,需要继承者两个类。如下:




function ClassZ()...{


ClassX.apply(this);


ClassY.apply(this);


this.message="This is thie Z message.";






if(typeof ClassZ._initialized=="undefined")...{


ClassZ.prototype.inheritFrom(ClassX);


ClassZ.prototype.inheritFrom(ClassY);






ClassZ.prototype.sayMessageZ=function()...{


alert(this.messageZ);


};




ClassZ._initialized=true;


}


}

注意继承属性的两行代码(使用apply()方法)和继承方法的两行代码(使用inheritFrom()方法)。继承的顺序非常重要。测试代码如下:


var objZ=new ClassZ();


objZ.sayMessageX(); //outputs "This is X message."


objZ.sayMessageY(); //outputs "This is Y message."


objZ.sayMessageZ(); //outputs "This is Z message."
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: