backbone.js位字段值添加到模型最佳实践中
如果我有一些位掩码常数,即kRequired=0x1、kLocked=0x2、kTypeA=0x4、kTypeB-0x8等 应该在哪里将它们添加到模型中,因为我宁愿没有全局变量,即使它们是不可变的值。在A.B.C.D以下面的代码还是其他方式 这里有很多(30个),只是在下面的例子中展示了一对。在我看来,它们不是要设置/获取的实际实例值,而是一个作用域为模型类的全局查找backbone.js位字段值添加到模型最佳实践中,backbone.js,Backbone.js,如果我有一些位掩码常数,即kRequired=0x1、kLocked=0x2、kTypeA=0x4、kTypeB-0x8等 应该在哪里将它们添加到模型中,因为我宁愿没有全局变量,即使它们是不可变的值。在A.B.C.D以下面的代码还是其他方式 这里有很多(30个),只是在下面的例子中展示了一对。在我看来,它们不是要设置/获取的实际实例值,而是一个作用域为模型类的全局查找 var Entry = Backbone.Model.extend({ initialize: function
var Entry = Backbone.Model.extend({
initialize: function(){
/** A) here the models init ? **/
this.kRequired = 0x1 ,
this.kLocked - 0x2.
/* .... */
},
/* B) here as models meta data ?? */
kRequired ": 0x1.
kLocked : ox2.
isLocked = function{){
return ((this.get('bitinfo') & kLocked) != 0)
}
});
new Entry({/* C) here with instance data */
{
bitinfo: 0x102,
name:"abd"
},
/* or D) with class data here? */
);
以下是您的入门车型的理想结构:
var Entry = Backbone.Model.extend({
// define the mode variables in defaults
defaults:{
kRequired:0x1,
kLocked:0x2
instaceVariable:"" // can add default value
},
initialize: function(){
var req=this.get("kRequired") // to retrieve kRequired
var lock=this.get("kLocked") // to retrieve kLocked
}
});
var myEntry=new Entry({instaceVariable:"New Instace value"});
//create an instance of Model
您可以在模型的默认值中添加常量值,这样就可以使用模型的Instance访问它们。您需要通过.get()函数访问它们。我遇到了同样的问题。我不想使用Umesh提出的默认解决方案,因为我将保存模型,不想使用无关字段 我最终在模型类之外创建了一个配置对象。例如,它看起来像:
var Entry = Backbone.Model.extend({
// ...
});
Entry.constant = {};
Entry.constant.kRequired = 0x1;
...
然后您可以像使用任何普通javascript变量一样使用Entry.constant.kRequired。它不依赖于是否创建了新的Entry对象,更清楚的是这些是类级常量。您能描述Entry的性质及其用途吗?或者关于你可能有明确指导方针的观点?