你的位置:首页 > Java教程

[Java教程]javascript继承的实现方式介绍


javascript继承的实现方式介绍:
作为面向对象的一门语言,继承自然是javascript所比不可少的特性,下面就简单介绍一下javascript实现继承的几种方式,希望能够对需要的朋友带来一定的帮助,下面进入正题。
一.对象冒充:

 

function A(){ this.name="蚂蚁部落"; this.address="青岛市南区";}function B(){ this.target="提供免费的教程"; this.newA=A; this.newA(); delete this.newA;}var oB=new B();document.write(oB.name);

 

先看一段代码实例:以上代码代码可以输出"蚂蚁部落",这说明A中的属性已经被B继承,下面简单介绍一下实现原理。
构造函数也可以当做普通的函数使用,所以在构造函数B中调用函数A()可以将A中使用this定义的属性全都集成到B中去,这样就简单的实现了我们需要的继承。关于this的用法可以参阅JavaScript的this用法详解一章节。
二.使用call()和appy()函数:
使用call()方法和appy()函数也可以实现继承效果,代码如下:

 

function A(){ this.name="蚂蚁部落"; this.address="青岛市南区";}function B(){ this.target="提供免费的教程"; this.newA=A; this.newA(); delete this.newA;}var oB=new B();A.call(oB);document.write(oB.name);

 

以上代码利用call函数同样实现了继承效果,这里就不多介绍了,具体可以参阅javascript的call()和apply()的作用和区别一章节。
三.原型链方式:
javascript的继承是基于原型的,Prototype对象的任何属性和方法都被传递给那个类的所有实例,通过原型一层层的继承于是就形成了一个原型链,代码实例如下:

 

function A(){}A.prototype.name="蚂蚁部落"; A.prototype.address="青岛市南区";function B(){ } B.prototype=new A(); var oB=new B();document.write(oB.name);

 

以上代码通过原型链方式同样实现了继承。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=8503

更多内容可以参阅:http://www.softwhy.com/javascript/