简单的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 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
js身份证判断方法支持15位和18位
Mar 18 Javascript
重写document.write实现无阻塞加载js广告(补充)
Dec 12 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
Apr 18 Javascript
BootStrap实现手机端轮播图左右滑动事件
Oct 13 Javascript
JS实现图片上传预览功能
Nov 21 Javascript
BootStrap 导航条实例代码
May 18 Javascript
Vue绑定内联样式问题
Oct 17 Javascript
JS实现网页烟花动画效果
Mar 10 Javascript
JS实现图片幻灯片效果代码实例
May 21 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 Javascript
JavaScript中window和document用法详解
Jul 28 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 广告调用类代码(支持Flash调用)
2011/08/11 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
浅析Python3 pip换源问题
2020/01/06 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
优秀员工自荐书
2013/12/19 职场文书
项目申请汇报材料
2014/08/16 职场文书
土地转让协议书
2014/09/27 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
开除员工通知
2015/04/22 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript
Go语言基础函数基本用法及示例详解
2021/11/17 Golang
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python
js判断两个数组相等的5种方法
2022/05/06 Javascript