简单的JS多重继承示例


Posted in Javascript onMarch 13, 2008
$defined = function (v) { 
    return v != undefined; 
} Class = function () { 
    var base = {}; 
    for (var k=0; k<arguments.length; k++) { 
    //{{new arguments[k]() with custom constructor field. 
        var o = arguments[k].prototype; 
        o.constructor = arguments[k]; 
        arguments[k].call(o); 
    //}} 
        for (key in o) base[key] = o[key]; 
    } 
    function Klass () { 
        // for every class one object cache. 
        var clso = null; 
        function klass() { 
            if (arguments.length<=0 && clso!=null) { 
                // hit cache. 
                return clso; 
            } 
            if ($defined(this.constructor.init)) { 
                // use init() for class initialization. 
                this.constructor.init.apply(this, arguments); 
            } 
            clso = this; 
        } 
        klass.prototype = base; 
        return klass; 
    } 
    return Klass(); 
} 
A = new Class(); 
A.init = function () { 
    this.x = 400; 
    this.y = 300; 
} 
B = new Class(A); 
B.init = function () { 
    this.y = 200; 
    this.z = 100; 
} 
C = new Class(B); 
C.init = function () { 
    this.z = 0; 
} 
c = new C(); 
alert(c.x); 
alert(c.y); 
alert(c.z); 
Javascript 相关文章推荐
基于jquery的气泡提示效果
May 31 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
javascript中encodeURI和decodeURI方法使用介绍
May 06 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 Javascript
Jquery EasyUI $.Parser
Jun 02 jQuery
Vue.js项目中管理每个页面的头部标签的两种方法
Jun 25 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 Javascript
JMenuTab简单使用说明
Mar 13 #Javascript
JObj预览一个JS的框架
Mar 13 #Javascript
DHTML Slide Show script图片轮换
Mar 03 #Javascript
JavaScript面向对象编程
Mar 02 #Javascript
一个javascript参数的小问题
Mar 02 #Javascript
js加解密 脚本解密
Feb 22 #Javascript
JS应用之禁止抓屏、复制、打印
Feb 21 #Javascript
You might like
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
javascript的函数
2007/01/31 Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
用Python解决计数原理问题的方法
2016/08/04 Python
python自动化生成IOS的图标
2018/11/13 Python
Python装饰器语法糖
2019/01/02 Python
Python数学形态学实例分析
2019/09/06 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
农村婚礼证婚词
2014/01/10 职场文书
酒店个人求职信范文
2014/01/25 职场文书
防沙治沙典型材料
2014/05/07 职场文书
客服专员岗位职责
2015/02/10 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
妇产科护理心得体会
2016/01/22 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis