WEB开发网
开发学院网页设计JavaScript Javascript玩转继承(二) 阅读

Javascript玩转继承(二)

 2010-09-14 13:46:29 来源:WEB开发网   
核心提示: alert(p instanceof Point);成功!好,我们来分析下原型继承:原型继承的优点我不再多说,Javascript玩转继承(二)(3),结构简单,容易理解,又引入了一些新的问题,总体来说,而且可以instance,但是他的缺点同样显著

alert(p instanceof Point);

Javascript玩转继承(二)

成功!好,我们来分析下原型继承:

原型继承的优点我不再多说,结构简单,容易理解,而且可以instance。但是他的缺点同样显著,还记得我上一篇关于Animal,People,Girl的例子么?我们用原型继承来实现下:

function Animal()
 
{
 
this.Run=function(){alert("I can run");};
 
}
 
function People(name)
 
{
 
this.Say=function(){alert("My name is "+this.name);}
 
}
 
People.prototype=new Animal();
 
function Girl(name,age)
 
{
 
this.age=age;
 
this.Introduce=function(){alert("My name is "+this.name+".I am "+this.age);};
 
}
 
Girl.prototype=new People(???);

大家注意看我红色加粗部分的那行代码,People是Girl的原型,那么我们在初始化People的时候就应该传入name参数,但是每个Girl的名字是不一样的,所以原型继承不使用的场合一:在原型继承阶段你不能确定用什么参数来初始化父类对象。场合二:很简单,每一个类只能有一个原型,那么也就是说,原型继承不能用于多继承。这是件好事,也是件坏事。因为:

在Java和C#等面向对象语言中,本来就不支持多继承,并且认为多继承是不符合面向对象的

无法实现多个接口了!

好了,今天就写到这,总结下,Prototype继承解决了构造继承的一些问题,又引入了一些新的问题。总体来说,原型继承是应用最广泛的继承方式,也是Javascript文法中真正意思上实现继承的方式!

上一页  1 2 3 

Tags:Javascript 继承

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