Backbone.js 这两个模型定义之间有什么区别?

Backbone.js 这两个模型定义之间有什么区别?,backbone.js,Backbone.js,我是backbone.js的新手,我对模型定义有一个问题。在各种教程和介绍中,我看到了定义模型的三种方法: Tour = Backbone.Model.extend({ idAttribute: 'id', urlRoot: '/api/tour', }); return Tour; }); 下一个是: **var** Tour = Backbone.Model.extend({ idAttribute: 'id', urlRoot: '/api/t

我是backbone.js的新手,我对模型定义有一个问题。在各种教程和介绍中,我看到了定义模型的三种方法:

Tour = Backbone.Model.extend({

    idAttribute: 'id',

    urlRoot: '/api/tour',

});

return Tour;
});
下一个是:

**var** Tour = Backbone.Model.extend({

    idAttribute: 'id',

    urlRoot: '/api/tour',

});

return Tour;
});
我也看过这个:

Tour = Backbone.Model.extend({

    idAttribute: 'id',

    urlRoot: '/api/tour',

});

return **new Tour()**;
});

我读到第一个是在“全局名称空间”中,这实际上对我的编程没有任何影响。那么这三个变量(特别是第一个和第二个)之间的差异在哪里?什么时候应该使用哪一个?

1-在第一种方法中,您创建了一个名为
Tour
的全局变量,因此无论您在哪里
Tour
都将指向您的模型类

2-在第二个示例中,您创建了一个局部变量,指向您的模型类并返回它,因此无论何时您想要使用您的模型,您都必须实例化返回的变量,就这样

3-在第三种方法中,您正在创建模型类,实例化它并返回实例,因此您的所有程序都将共享同一实例

正确的方法是第二种,因为第一种方法不鼓励在javascript中使用全局变量,而第三种方法不起作用