我应该在哪里查看与常量相关的常量-bone.js

| 想象一下,我有一个视图,并且作为视图的一部分,它渲染\'x \'模型对象,并且仅渲染\'x \'。问题是,将这个与视图相关的常数放在哪里对我合适? 我的猜测是做这样的事情:
myApp.MyView = Backbone.View.extend({
    ...
    myConstant: 10,
    ...
    render: function(){
        ...
        //some code that uses myConstant
        ...
    }
});
这有意义吗? 任何建议都有帮助!     
已邀请:
听起来您想要做的就是为视图分配一个class属性。您可以将第二个哈希传递到扩展调用中以执行此操作。您的代码如下所示:
myApp.MyView = Backbone.View.extend({

    render: function() {
        alert(myApp.MyView.myConstant);
    }

}, {

    myConstant: 10

});
您的常量可以通过myApp.MyView.myConstant访问。     
你很亲密!您实际上将只使用this.myConstant。这是一个有效的例子...
testView = Backbone.View.extend({
    test: \"hello world!\",

    initialize: function(){
        alert( this.test );
        _.bindAll(this, \"render\");
    },

    render: function(){
        //do your rendering...
        return this;
    }
});
var view = new testView();
    
如上所述,我同意(并赞成)接受的答案,但是为了清楚起见,我倾向于采用这种格式:
myApp.MyView = Backbone.View.extend({
    render: function() {
        alert(myApp.MyView);
    }
});

_.extend(myApp.MyView.prototype, {
  enum : {
      //...
  }
});
原因是您的视图可能有很多mixin,并且我发现当您继续在View.extend的一个接一个的对象中添加对象时,可见性变得模糊了。至少通过这种方式,您可以将其分解并在混入之间添加注释。如果您正在使用RequireJS并加载一组通用的枚举/混合,这也就更有意义了。     
不要在extend下初始化视图常量,对于所有视图实例,它的行为就像静态常量。改用构造函数:
constructor: function()
{
     Backbone.View.prototype.constructor.apply(this, arguments);
     this.myConstant = 10;
     this.myOtherConstant = {};
}
在这里更多的解释     

要回复问题请先登录注册