js中实现多态
2016-02-27 12:19
447 查看
多态的实现能够採用和继承类似的方法。首先定义一个抽象类。当中调用一些虚方法。虚方法在抽象类中没用定义。而是通过其详细的实现类来实现。
如以下的样例:
首先定义了一个抽象基类base,在base类的initialize方法中调用了oninit方法,可是基类中并没用oninit方法的实现或者声明。
SubClassA和SubClassB类继承自base类,而且分别採用了不同的方式对oninit方法进行实现。
如以下的样例:
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方法进行实现。
相关文章推荐
- Angular2教程(三)
- javascript的 {} 语句块详解
- JavaScript的基础语法
- Javascript ES3执行上下文
- javascript中eval解析JSON字符串
- Pascal's Triangle I && II--JavaScript
- href="javascript:_do(this);"和onclick="_do(this)"的区别
- 让你的javascript函数拥有记忆功能,降低全局变量的使用
- 如何用javascript实现 网页标题的滚动效果
- Angular2教程(一)
- 了解JavaScript 对象属性的标签
- Plus One--JavaScript
- javascript先序遍历DOM树的方法
- js中匿名函数的递归
- js闭包
- JSP基本语法、3个编译指令、7个动作指令、9个内置对象
- 在Angular外部使用js调用Angular控制器中提供的函数方法或变量
- JS重点特性——闭包详解
- <javascript>每日一记
- javascript介绍