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

 更新时间:2014年08月22日 08:58:31   投稿:whsnow  
首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现

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

如下面的例子:

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方法进行实现。

相关文章

  • JS去掉字符串前后空格或去掉所有空格的用法

    JS去掉字符串前后空格或去掉所有空格的用法

    这篇文章主要介绍了JS去掉字符串前后空格或去掉所有空格的用法,需要的朋友可以参考下
    2017-03-03
  • typeScript 核心基础之接口interface

    typeScript 核心基础之接口interface

    本篇文章主要介绍 typeScript 中接口是啥?如何定义的?接口是如何进行扩展的以及类如何实现接口,接下来和小编一起进入下面文章一起学习 typeScript 接口
    2022-02-02
  • js实现全选和全不选功能

    js实现全选和全不选功能

    这篇文章主要为大家详细介绍了js实现全选和全不选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • uni-app 项目中 “文件查找失败:‘crypto-js‘“ 的问题及解决方法

    uni-app 项目中 “文件查找失败:‘crypto-js‘“ 的问题及解决方法

    在开发使用 uni-app 框架的项目时,遇到依赖问题是常见的,本文将介绍如何解决编译过程中出现的 “文件查找失败:‘crypto-js’” 错误,并说明这种错误为什么会发生以及如何避免,下面分步骤给大家带来解决方案,感兴趣的朋友一起看看吧
    2024-07-07
  • 微信小程序实现表单验证源码

    微信小程序实现表单验证源码

    这篇文章主要为大家详细介绍了微信小程序实现表单验证源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 学习JavaScript设计模式(代理模式)

    学习JavaScript设计模式(代理模式)

    这篇文章主要带领大家学习JavaScript设计模式,其中重点介绍代理模式,对代理模式进行详细剖析,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • JS使用cookie实现只出现一次的广告代码效果

    JS使用cookie实现只出现一次的广告代码效果

    我们上网经常会遇到第一次需要登录而之后不用再登录的网站的情况,其实是运用了Cookie 存储 web 页面的用户信息,Cookie 以名/值对形式存储,当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中
    2017-04-04
  • js动态给table添加/删除tr的方法

    js动态给table添加/删除tr的方法

    这篇文章介绍了js动态给table添加/删除tr的方法,有需要的朋友可以参考一下
    2013-08-08
  • 微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)

    微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)

    这篇文章主要介绍了微信小程序scroll-view左侧导航栏点餐功能实现,点击种类,滚动到锚点;滚动到锚点,种类选中,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • JavaScript引用赋值与传值赋值总结

    JavaScript引用赋值与传值赋值总结

    这篇文章主要介绍了JavaScript引用赋值与传值赋值总结,在JavaScript中基本数据类型都是传值赋值,复合数据类型都是引用赋值(传地址)也叫引用传址,下文更多相关资料,需要的小伙伴可以参考一下
    2022-05-05

最新评论