//类对象构造模版,无new访问,类似静态访问
var Class = {
create: function () {
return function ()
{
//initialize初始化
//apply应用变更,可以反复请求
//arguments参数
this.initialize.apply(this, arguments)
};
},
//模拟抽象方法,可以随便自己定
Show: function () {
}
}; //模拟继承extobj扩展对象,srcobj源对象
var Extend = function (extobj, srcobj) {
for (var a in srcobj) {
extobj[a] = srcobj[a];
}
return extobj;
}; //动态为Object添加extend方法,用来完成继承
Object.prototype.extend = function (obj) {
return Extend.apply(this, [this, obj]);
}; //实例演示
var ClassAB = Class.create();
ClassAB.prototype = {
//初始函数,相当于构造方法
initialize: function (name) {
this.name = name;
},
Show: function (a) {
this.abstractShow(a); //抽象方法
}
}; //继承
var ClassA = Class.create();
ClassA.prototype = new ClassAB(null).extend({
Show: function (a) { //实现抽象方法
alert(this.name + " " + typeof (this) + " " + a);
} }); var ClassB = Class.create();
ClassB.prototype = new ClassAB(null).extend({
Show: function (a) { //实现抽象方法
alert(this.toString + " " + typeof (this) + " " + a+new Date().toDateString());
}
}); //多态
ClassAB = new ClassA("ClassA");
ClassAB.Show("hello"); ClassAB = new ClassB("ClassB");
ClassAB.Show("hello");

JS实现继承多态的更多相关文章

  1. javascript 学习笔记之面向对象编程(二):继承&多态

    ~~接上篇~~上一篇实现了类的实现以及类成员变量和方法的定义,下面我们来了解下面向对象中两个最重要的特性:继承和多态. 继承 js中同样可以实现类的继承这一面向对象特性,继承父类中的所有成员(变量和属 ...

  2. js 实现继承

    我们现在要做的一件事情是像其他语言的面向对象一下实现继承多态 具体要求如下: 一个 Father 构造函数,一个 Child 构造函数,其中改写 Father中的部分参数, new Child() 表 ...

  3. JS高级---继承

    继承 面向对象编程思想: 根据需求, 分析对象, 找到对象有什么特征和行为, 通过代码的方式来实现需求, 要想实现这个需求,就要创建对象 ,要想创建对象, 就应该显示有构造函数, 然后通过构造函数来创 ...

  4. JS对象继承篇

    JS对象继承篇 ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的 原型链 其基本思路是利用原型让一个引用类型继承另一个引用类型的属性和方法 function Person() ...

  5. js实现继承的5种方式 (笔记)

    js实现继承的5种方式 以下 均为 ES5 的写法: js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承 ...

  6. js实现继承的方式总结

    js实现继承的5种方式 以下 均为 ES5 的写法: js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承 ...

  7. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  8. js实现继承的两种方式

    这是面试时面试官会经常问到问题: js的继承方式大致可分为两种:对象冒充和原型方式: 一.先说对象冒充,又可分为3种:临时属性方式.call().apply(): 1.临时属性方式: 当构造对象son ...

  9. Winform打砖块游戏制作step by step第5节---重构代码,利用继承多态

    一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---重构代码,利用继承多态 1. 主界面截图如下: 2.  ...

随机推荐

  1. ASP.NET- 播放视频代码

    在网上找的,还不错,支持很多格式.只需要在页面放个lable,建一个放视频文件的文件夹movie,加入代码: protected void Page_Load(object sender, Event ...

  2. Datediff函数 助你实现不同进制时间之间的运算

    在VB开发环境中实现时间之间的加减运算有很多种方法,前不久自己无意中发现了Datediff函数,它能够比较简单.全面地实现我们比较常用的时间之间的运算,今由自己的研究,搞清了它的一些用法,拿来和大家分 ...

  3. 博客搬家到 http://fresky.github.io/ - Visual Studio的插件Pdbproj可以把pdb转换成C++项目

    博客搬到了Dawei XU,请各位看官挪步.最新的一篇是:Visual Studio的插件Pdbproj可以把pdb转换成C++项目.

  4. UVa 567: Risk

    这是一道很简单的图论题,只要使用宽度优先搜索(BFS)标记节点间距离即可. 我的解题代码如下: #include <iostream> #include <cstdio> #i ...

  5. android关机充电

    1.关机充电其实是进入adb shell很快的方式! 2.手机关机时候插入USB,手机将进入关机充电模式,那么这个模式究竟是怎么进行的,这里分析如下! (1)uboot:这里代码大概浏览了一下:u-b ...

  6. 探索WebKit内核(一)------ 菜鸟起步

    为什么搞WebKit 如今研究WebKit的人越来越多,俺不能免俗,也增加当中.WebKit的火爆也是得益于浏览器和WebOS的混战,随着Palm WebOS, Chrome OS, Firefox ...

  7. ARCGIS获取图层下的要素信息及要素类转换为要素

    /// <summary> /// 得到需要的字段名和字段值 /// </summary> /// <param name="layer">&l ...

  8. android之listView定位到指定行同时隐藏输入键盘

    帮别人该bug遇到的一个问题,记录下来. listView.setSelection(a); 这个方法可以让让你的listview定位到指定行 但是如果紧接着执行隐藏输入键盘的代码,则会有bug,这个 ...

  9. jquery 提示信息显示后自动消失的具体实现

    方法一: 复制代码 代码如下: $("#errormsg").html("您的信息输入错误,请重试!").show(300).delay(3000).hide( ...

  10. java命名规则

    java变量命名是不能以#开头的.Java变量的命名规则如下:$ .字母.下划线开头都行,不能以数字开头 后面的可以是数字.字母.下划线, 其他的命名方式,都会报错,且不能运行. 以字母.下划线( _ ...