JAVASCRIPT继承方如此简单
看了很多的js继承方式都觉得不是很好,总是觉得不是很方便,用起来也不顺。所以一直在查这方面的资料思考这个问题,终于有所收获。忍不住要贴出来与大家共享,让大家一起享受javascript继承的快乐。
优点:只要声明一个简单的函数即可方便使用JAVASCRIPT的继承,使用方法也只要一行代码调用继承方法即可,调用方式非常自然。
下面是示例源代码:
<script>
/**
首先给Object类添加继承方法extends,
前两句起继承父类的作用,使得调用的子类能够获得父类的所有属性和方法
后一句保存对一个对父类的引用,以便在需要的时候可以调用父类的方法
如果不需要使用父类的方法,最后一句可以删除
方法名不能为extends,因为IE认为是关键字不让用火狐下是可以的。属性superClass也不能用super,也是关键字。不然看起来就更舒服了(那就太像java了)。
*/
Object.prototype.extend = function(SuperClass){
this.SuperClass=SuperClass;
this.SuperClass();
this.superClass=new SuperClass();
}
//下面是示例代码
//声明父类:第一个方法show将得到继承,第二个方法将被覆盖
function SuperClass(){
this.show=function(){
alert('Call SuperClass.show()');
}
this.override=function(){
alert('Call SuperClass.override() width "superClass.override()"');
}
}
//声明子类:继承父类,同时覆盖了父类的方法override
function SubClass(){
//调用继承方法继承父类的属性和方法
this.extend(SuperClass);
this.override=function(){
alert('I have overrided SuperClass.override method.\nCall SubClass.override()');
}
}
//测试继承的结果:
var s=new SubClass();
s.show(); //将调用父类的方法
s.override();//将调用子类覆盖后的方法
s.superClass.override();//将调用父类的override方法
</script>