简单的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 相关文章推荐
验证手机号码的JS方法分享
Sep 10 Javascript
js用正则表达式来验证表单(比较齐全的资源)
Nov 17 Javascript
JS清空多文本框、文本域示例代码
Feb 24 Javascript
jQuery的文档处理程序详解
May 10 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
Aug 10 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
JavaScript数组push方法使用注意事项
Oct 30 Javascript
JS实现在文本指定位置插入内容的简单示例
Dec 22 Javascript
在vue项目中安装使用Mint-UI的方法
Dec 27 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
react中的DOM操作实现
Jun 30 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
javascript 写类方式之一
2009/07/05 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
理解JS绑定事件
2016/01/19 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python列表解析配合if else的方法
2018/06/23 Python
python实现可逆简单的加密算法
2019/03/22 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
python复合条件下的字典排序
2020/12/18 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
幼儿园家长会欢迎词
2014/01/09 职场文书
法律进机关实施方案
2014/03/12 职场文书
2014年平安夜寄语
2014/12/08 职场文书
太行山上观后感
2015/06/05 职场文书
医院病假条怎么写
2015/08/17 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers