2011-08-17 19 views
8

Bir backbone.js modelinin model adını nasıl alabilirim? ÖrneğinBir geçirilen backbone.js model örneğinin model türünü edinin

:

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) 

Ben backbone.js modeli ve bir sınıf arasındaki çizgi bulanık olabilir fark, bu yüzden gerekirse bu konuda gitmekten başka yollarla açığım.

cevap

20

instanceof işlecini kullanın.

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

Model türü bilinen bir nesne ile karşılaştırılırken, o modelin yeni bir örneğini oluşturabilmem için bir Backbone nesnesinin model türünü almak mümkün müdür? –

+7

@NileshC: eğer var olan bir nesne ise, 'var newObj = new (obj.constructor)();' aynı türde yeni bir örnek oluşturur. Bu, nesnenin inşa edildiğinde doğru şekilde "kablolu" olduğunu varsaymaktadır (Bu, Backbone ile oluşturulan nesneler için güvenli bir varsayımdır). – Lee