2011-08-17 7 views
8

backbone.jsモデルインスタンスのモデル名を取得するにはどうすればよいですか?例えば渡されたbackbone.jsモデルインスタンスのモデルタイプを取得

var Topic = Backbone.Model.extend({ 

}) 
var topic = new Topic({ type: 'question' }) 

var doSomethingWithTopic = function(topic) { 
    // check if passed in topic is of type Topic 
    // something like topic.constructor.name === 'Topic' 
} 

doSomethingWithTopic(topic) 

私はBACKBONE.JSモデルとクラスの間に線をぼかすことも実現ので、私は必要に応じて、このついて行くの他の方法に開いています。

答えて

20

instanceof演算子を使用してください。

var doSomethingWithTopic = function(topic) { 
    if(topic instanceof Topic) { 
    // do something with topic 
    } 
} 
+1

これは知られているオブジェクトを持つモデルタイプを比較しながら、それは私がそのモデルの新しいインスタンスを作成できるように、バックボーンオブジェクトのモデルタイプを取得することは可能でしょうか? –

+7

@NileshC: 'obj'が既存のオブジェクトである場合、' var newObj = new(obj.constructor)(); 'は同じタイプの新しいインスタンスを作成します。これは、オブジェクトが構築されたときに正しく配線されていることを前提としています(これは、Backboneで作成されたオブジェクトの安全な前提です)。 – Lee

関連する問題