Javascript MooTools中静态成员的继承

Javascript MooTools中静态成员的继承,javascript,inheritance,mootools,Javascript,Inheritance,Mootools,我使用的是MooTools类系统,我希望能够访问特定类的任何静态成员,而不必知道完整的继承链。例如,如果我有一个扩展基类的ChildClass,并且 BaseClass.foo=function(){/*…*/} 我希望能够调用ChildClass.foo() 为此,我考虑修改MooToolsClass方法如下: function Class(params) // ... // var newClass = ... var parentClass = params.Ex

我使用的是MooTools类系统,我希望能够访问特定类的任何静态成员,而不必知道完整的继承链。例如,如果我有一个扩展
基类的
ChildClass
,并且

BaseClass.foo=function(){/*…*/}

我希望能够调用
ChildClass.foo()

为此,我考虑修改MooTools
Class
方法如下:

function Class(params)
    // ...
    // var newClass = ...

    var parentClass = params.Extends;
    if (parentClass) {
        newClass.__proto__ = parentClass;
    }

    // ...
}
这将设置每个类对象的原型链以指向其父类

如果来自更高类的静态成员隐藏在更派生的类中,那么就这样吧


尽管使用了弃用的
\uuuuu proto\uuuuuu
,但我在这里走对了吗?有人看到任何明显的问题吗?

您始终可以扩展扩展变量:

(function(){

    var original = Class.Mutators.Extends;

    Class.Mutators.Extends = function(parent) {
        original.call(this, parent);

        var members = {};
        for (var key in parent) {
            if (parent.hasOwnProperty(key) && !this.hasOwnProperty(key)) {
                members[key] = parent[key];
            }
        }
        this.extend(members);
    };

}());
你应该退房