自动属性

Gui*_*nge 4 javascript backbone.js

我正在使用Backbone创建一个应用程序,它遵循以下结构:

App = {
  Models: {},
  Views: {},
  Collections: {},
  Routers: {}
};
Run Code Online (Sandbox Code Playgroud)

在设计对象时 - 在本例中为View - ,我执行以下操作:

App.Views.ProductsView = Backbone.Model.extend();
Run Code Online (Sandbox Code Playgroud)

但是,我想要的东西:

App.Views.Products.IndexView = Backbone.Model.extend();
Run Code Online (Sandbox Code Playgroud)

有什么大不了的?

如果我之前宣布App.Views.Products = {},一切都会奏效 - 但我想自动完成; 没有任何先前的声明.

根据我的问题,你能给我一个想法吗?

ade*_*neo 6

我不确定我是否得到它,但是你可以在向链中添加属性之前声明属性?

App.Models.Products = {};

App.Models.Products.IndexView = Backbone.Model.extend();
Run Code Online (Sandbox Code Playgroud)

当然,您可以通过多种方式声明它,例如在您创建App时

App = {
  Models      : {
        Products : {} // here
  },
  Views       : {},
  Collections : {},
  Routers     : {},
  Views       : {}
};
Run Code Online (Sandbox Code Playgroud)

或作为包含密钥等的文字

App.Models.Products = {
    IndexView : Backbone.Model.extend();
}
Run Code Online (Sandbox Code Playgroud)

作为编辑问题的答案,你不能,javascript没有创建缺失属性的神奇方法,你必须自己声明它们.