html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

js中实现多态采用和继承类似的方法_javascript技巧_

[ ] 已经帮助:人解决问题

多态的实现可以采用和继承类似的方法。首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现。TTBHTML5中文学习网 - HTML5先行者学习网

如下面的例子:TTBHTML5中文学习网 - HTML5先行者学习网

Object.extend=function(destination,source){ for(property in source){ destination[property]=source[property]; } return destination; } //定义一个抽象基类base,无构造函数 function base(){}; base.prototype={ initialize:function(){ this.oninit();//调用了一个虚方法 } } function SubClassA(){ //构造函数 } SubClassA.prototype=Object.extend({ propInSubClassA:"propInSubClassA", oninit:function(){ alert(this.propInSubClassA); } },base.prototype); function SubClassB(){ //构造函数 } SubClassB.prototype=Object.extend({ propInSubClassB:"propInSubClassB", oninit:function(){ alert(this.propInSubClassB); } },base.prototype); var objA=new SubClassA(); objA.initialize();//输出"propInSubClassA" var objB=new SubClassB(); objB.initialize();//输出"propInSubClassB"

首先定义了一个抽象基类base,在base类的initialize方法中调用了oninit方法,但是基类中并没用oninit方法的实现或者声明。SubClassA和SubClassB类继承自base类,并且分别采用了不同的方式对oninit方法进行实现。TTBHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助