简单的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中的$(document).ready()与window.onload的区别
Nov 18 Javascript
jquery 选项卡效果 新手代码
Jul 08 Javascript
js 判断脚本加载完毕的代码
Jul 13 Javascript
js中arguments的用法(实例讲解)
Nov 30 Javascript
jQuery 复合选择器应用的几个例子
Sep 11 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
JScript中的条件注释详解
Apr 24 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
JavaScript实现单点登录的示例
Sep 23 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
在PWS上安装PHP4.0正式版
2006/10/09 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
php之可变变量的实例详解
2017/09/12 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
python生成ppt的方法
2018/06/07 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
请假条格式范文
2014/04/10 职场文书
卖车协议书
2014/04/21 职场文书
创先争优个人承诺书
2014/08/30 职场文书
2015年信访工作总结
2015/04/07 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS