简单的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得到网页中所有的div的id
Oct 19 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
容易造成JavaScript内存泄露几个方面
Sep 04 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
jquery操作angularjs对象
Jun 26 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
Vue2 使用 Echarts 创建图表实例代码
May 18 Javascript
Bootstrap按钮组实例详解
Jul 03 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
Nov 14 Javascript
jquery实现图片放大镜效果
Dec 23 jQuery
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
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
js实现继承的5种方式
2015/12/01 Javascript
javascript基本语法
2016/05/31 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
python对json的相关操作实例详解
2017/01/04 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python将string转换到float的实例方法
2019/07/29 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
Django实现简单的分页功能
2021/02/22 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
学生实习介绍信
2014/01/15 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
运动会四百米广播稿
2014/01/19 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
老兵退伍感言
2015/08/03 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL