JS多重继承实例,js新手学习资料
复制代码 代码如下:
$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); 
您可能感兴趣的文章:
相关文章
最新评论
 站长推荐 正版Windows 10 家庭/专业版,操作系统限时抢购[¥1088→¥248] 站长推荐 Microsoft Office 2016/2019/365 正版最低价仅需[ ¥148元]
大家感兴趣的内容
最近更新的内容
常用在线小工具
