JS 实现继承静态属性
2015-08-16 16:05
555 查看
在应用中,我们常常设计继承关系,当然静态属性也是很简单的,但是如果把这两者结合到一起,还是需要一些技巧的。
场景描述:
父类:定义静态属性类型,仅仅起到描述的作用,具体的实例化交给每一个子类去做。
定义抽象方法,并且在方法中会调用之前定义的静态属性。
子类:继承父类。子类对静态属性进行赋值。
子类的对象,调用父类的接口。
实现继承代码如下(不是重点):
父类代码如下:
子类代码如下:
子类实例化:
场景描述:
父类:定义静态属性类型,仅仅起到描述的作用,具体的实例化交给每一个子类去做。
定义抽象方法,并且在方法中会调用之前定义的静态属性。
子类:继承父类。子类对静态属性进行赋值。
子类的对象,调用父类的接口。
实现继承代码如下(不是重点):
function inherit(sub, sup) { function F() {} F.prototype = sup.prototype; var parent = new F(); for(var arr in sub.prototype){ if(sub.prototype.hasOwnProperty(arr)){ parent[arr] = sub.prototype[arr]; } } sub.prototype = parent; sub.prototype.constructor = sub; sub._parent = parent; return sub; }
父类代码如下:
var parent = function(){ } parent.prototype={ gan:null, // 静态属性 shoot: function(){ this.gan.do(); // 调用静态属性。关键:不要用parent.prototype.gan } }
子类代码如下:
var child = function(){ parent.apply(this, arguments); if(!child.prototype.gan){ // 在子类中对静态属性进行初始化 child.prototype.gan = {do: function(){console.log('hello ..');}} } } inherit(child, parent);
子类实例化:
var cc = new child(); cc.shoot();// hello ..
相关文章推荐
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- js可突破windows弹退效果代码
- PostgreSQL教程(三):表的继承和分区表详解
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- Lua面向对象之类和继承浅析
- js显示当前星期的起止日期的脚本
- 浅析Ruby中继承和消息的相关知识
- 爆炸式的JS圆形浮动菜单特效代码
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- js select常用操作控制代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- C++实现不能被继承的类实例分析