简单的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 相关文章推荐
Javascript在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
Jan 15 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
AngularJS 教程及实例代码
Oct 23 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 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
PHP文件与目录操作示例
2016/12/24 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
jQuery常见开发技巧详细整理
2013/01/02 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
vue实现购物车小案例
2019/09/27 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
python中的sort方法使用详解
2014/07/25 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
python验证码识别的实例详解
2016/09/09 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
商场中秋节活动方案
2014/02/07 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
入团介绍人意见范文
2015/06/04 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python