2016-07-15 9 views
0

私はBACKBONE.JS継承モデルを使用して、クラスの次の構造を作成しようとしています:Backbone.Eventsを継承するクラスを拡張するには?

Backbone.Events - >親 - >子

子供が親からinitializeを呼び出すが、残念ながらそれはすべきです動作しません。親メソッドとプロパティは表示されません。助けてください。

私のコード

var Parent = function() { 
    this.initialize.apply(this, arguments); 
}; 

_.extend(Parent.prototype, Backbone.Events, { 

    initialize: function() { 
     // parent init 
    }, 
}); 

var Child = function() { 
    this.initialize.apply(this, arguments); 
}; 

_.extend(Child.prototype, Parent, { 
    /* Inherits Parent */ 

    initialize: function() { 
     // need to call `parent init` code 
     // need to init myself (child) 
     // DOES NOT WORK 
     // Parent methods and properties are not visible 
     Parent.prototype.initialize.call(this, arguments); 
    } 
}); 

答えて

1

ただ、次のアプローチを使用します。

function Parent() { 
    this.initialize.apply(this, arguments); 
}; 

_.extend(Parent.prototype, Backbone.Events, { 

    initialize: function() { 
     // parent init 
    }, 
}); 

// pick extend method from Backbone 
Parent.extend = Backbone.Model.extend; 

var Child = Parent.extend({ 
    initialize: function() { 
     // Parent methods and properties are visible 
     Parent.prototype.initialize.apply(this, arguments); 
    } 
}); 
+0

を、アルテム、ありがとうございました。私の教育のためのbackbone.jsソースコードの 'Backbone.Model.extend'を指摘できますか?私はそれを見つけることができません。 –

+1

https://github.com/jashkenas/backbone/blob/master/backbone.js#L1929 –

関連する問題