Javascript中的继承
Javascript中的继承。例:
基类:A 类 ,子类B
Function A()
{
This.name=”A”;
This.innit=function()
{
Alert(“A出生了”);
}
}
Function B()
{
this.newMethod=A;
this.newMethod();
delete this.newMethod;
}
//前两句实现了继承,B要能够继承A则它继承了A的属性和方法。而怎样才能达到这一目的的呢??在B类中函数名newMethod指向A就像string a一样,a只是作为一个指针当new 一个对象的时候它才指向内存堆);指向了A,还得把它执行一次完完全全的继承了A类的属性和方法。(newMethod 在这儿没有实际意义,只是作为指针指向B继承基类的方法体);
最后一句 delete this.newMethod 删除了newMethod A类的引用,这样也就是B放弃了对A类的继承。
假如B类中也有属性 name,方法 inint
如:
Function B()
{
this.newMethod=A;
this.newMethod();
this.name=”B”;
this.innit=function()
{
Alert(“B出生了”);
}
}
然后调用
Var b=new B();
b.innit();
结果会输出 : B出生了
为什么会这样呢?B类继承了A类的属性和方法。但当B中自己的方法和基类的方法名字相同时候,构成了重载,这时候B中自定义的方法会重写基类的方法。
避免重写的方法就是 delete this.newMethod;其实也就是去掉了继承。