2011-08-17 35 views
8

Làm cách nào để truy xuất tên mẫu cho phiên bản mô hình backbone.js?Lấy loại mô hình cho mẫu đã được truyền trong ví dụ mô hình backbone.js

Ví dụ:

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) 

Tôi nhận ra tôi có thể làm mờ ranh giới giữa một mô hình backbone.js và một lớp, vì vậy tôi mở cửa cho những cách khác đi về việc này nếu cần thiết.

Trả lời

20

Sử dụng toán tử instanceof.

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

Trong khi điều này so sánh loại mô hình với một đối tượng đã biết, có thể lấy kiểu mô hình của đối tượng Backbone để tôi có thể tạo phiên bản mới của mô hình đó không? –

+7

@NileshC: nếu 'obj' là một đối tượng hiện có, thì' var newObj = new (obj.constructor)(); 'sẽ tạo một thể hiện mới cùng loại. Điều này giả định rằng đối tượng được "nối dây" một cách chính xác khi nó được xây dựng (đó là một giả định an toàn cho các đối tượng được tạo ra với Backbone). – Lee

Các vấn đề liên quan