获取传入的backbone.js模型实例的模型类型

baa*_*der 8 javascript model 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)
Run Code Online (Sandbox Code Playgroud)

我意识到我可能会模糊backbone.js模型和类之间的界限,因此如果需要,我可以采用其他方式解决这个问题.

Lee*_*Lee 20

使用instanceof运营商.

var doSomethingWithTopic = function(topic) {
  if( topic instanceof Topic ) {
    // do something with topic
  }
}
Run Code Online (Sandbox Code Playgroud)

  • @NileshC:如果`obj`是一个现有的对象,那么`var newObj = new(obj.constructor)();`将创建一个相同类型的新实例.这假设对象在构造时正确"连接"(这是使用Backbone创建的对象的安全假设). (7认同)