自动属性

Automatic properties

本文关键字:属性      更新时间:2023-09-26

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

App = {
  Models: {},
  Views: {},
  Collections: {},
  Routers: {}
};

当设计一个对象——在这个例子中是一个视图——时,我做了以下的事情:

App.Views.ProductsView = Backbone.Model.extend();

但是,我想要这样的:

App.Views.Products.IndexView = Backbone.Model.extend();

有什么大不了的?

如果我之前声明了App.Views.Products = {},一切都会工作-但我想自动完成;

根据我的问题,你能给我一个建议吗?

我不确定我得到它,但你已经声明属性之前,你可以添加属性链?

App.Models.Products = {};
App.Models.Products.IndexView = Backbone.Model.extend();
当然,你可以用多种方式声明它,例如当你创建App 时
App = {
  Models      : {
        Products : {} // here
  },
  Views       : {},
  Collections : {},
  Routers     : {},
  Views       : {}
};

或作为包含键etc的字面值

App.Models.Products = {
    IndexView : Backbone.Model.extend();
}

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

如果我之前声明App.Views.Products ={},一切都将正常工作-但我想自动完成;

如果您只想在需要时才创建对象,那么动态创建对象的常用方法是:

App.Views.Products = App.Views.Products || {}; 

这样就不需要提前创建对象。