ミックスインは、コードと継承をどのように整理するかという、別の概念的なアイデアにすぎません。もちろん、古典的またはプロトタイプの継承を使用してそれを組み合わせることができますが、いわばスタンドアロンでも機能します。
たとえば、「委任された」オブジェクトのプロパティ/ルックアップ (プロトタイプの継承など) を作成する代わりに、他の複数のオブジェクトから新しいスタンドアロン オブジェクトを真に「形成」します。これは「多重継承」と呼ばれることもあり、Javascriptのプロトタイプ継承だけでは簡単に実現できません。
例として:
var pianist = {
play: function() {}
};
var programmner: {
code: function() {}
};
そして、次のように別のObjectを作成できます
var Jim = Object.create( null ); // create a fully self-defining object
extend( Jim, pianist );
extend( Jim, programmer );
この疑似extend
メソッドは (ES5) のようになります。
function extend( target, source ) {
Object.getOwnPropertyNames( source ).forEach(function( key ) {
Object.defineProperty( target, key, Object.getOwnPropertyDescriptor(source, key)) });
return target
}
私は実際にあなたの質問に適切に答えていませんでしたが、あなたの質問に対する本当の答えはないように感じました. 実際に使用するのと同じくらいリアルで、「アプリケーション固有」のユースケースは実際にはありません。