【问题标题】:Get the model type for a passed in backbone.js model instance获取传入的backbone.js模型实例的模型类型
【发布时间】:2011-10-28 14:22:19
【问题描述】:

如何检索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 模型和类之间的界限,因此如果需要,我愿意接受其他方式来解决这个问题。

【问题讨论】:

    标签: javascript model backbone.js


    【解决方案1】:

    使用instanceof 运算符。

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

    【讨论】:

    • 虽然这会将模型类型与已知对象进行比较,但是否可以获取 Backbone 对象的模型类型以便我可以创建该模型的新实例?
    • @NileshC:如果obj 是一个现有对象,那么var newObj = new (obj.constructor)(); 将创建一个相同类型的新实例。这假设对象在构造时已正确“连接”(对于使用 Backbone 创建的对象来说这是一个安全的假设)。
    猜你喜欢
    • 2012-03-29
    • 2013-07-09
    • 2020-02-22
    • 1970-01-01
    • 2014-07-14
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多