2011-08-17 4 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 연산자를 사용하십시오.

+1

이것은 모델 유형을 알려진 객체와 비교하는 것이지만 해당 모델의 새 인스턴스를 만들 수 있도록 Backbone 객체의 모델 유형을 가져올 수 있습니까? –

+7

@NileshC :'obj'가 기존 객체 인 경우'var newObj = new (obj.constructor)();'는 같은 유형의 새 인스턴스를 생성합니다. 이것은 객체가 생성되었을 때 객체가 올바르게 "배선 된"것으로 가정합니다 (이것은 Backbone으로 생성 된 객체에 대한 안전한 가정입니다). – Lee

관련 문제