0
私はMooToolsクラスシステムを使用しています。完全な継承チェーンを知らなくても、特定のクラスの静的メンバーにアクセスしたいと考えています。私はBaseClass
を拡張ChildClass
、およびMooToolsでの静的メンバーの継承
BaseClass.foo = function() { /*...*/ }
を持っている場合たとえば、私はChildClass.foo()
を呼び出すことができるようにしたいと思います。この目的を達成するために
Class
方法を修正することを考えています:
function Class(params)
// ...
// var newClass = ...
var parentClass = params.Extends;
if (parentClass) {
newClass.__proto__ = parentClass;
}
// ...
}
この親クラスを指すように、各クラスのオブジェクトのプロトタイプチェーンを設定します。
上位クラスの静的メンバーがより派生したクラスに隠れている場合は、そのようにしてください。
推奨されていない__proto__
の使用にもかかわらず、私はここで正しい軌道に乗っていますか?誰も目障りな問題が見えますか?
(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);
};
}());
あなたはMark Obcena's bookをチェックアウトする必要があります: