我已经写了一段时间的backbone应用程序,我的模块通常是这样结构的:
var AppName = AppName || {};
AppName.Module = {};
AppName.Module.View = Backbone.View.extend({...});
AppName.Module.Model = Backbone.Model.extend({...});
但是我最近偶然发现了这个模块化的设计模式:
var AppName = AppName || {};
AppName.Module = (function() {
var View = Backbone.View.extend({...});
var Model = Backbone.Model.extend({...});
return {
View: View,
Model: Model
}
})();
在第二种模式中,您可以定义“私有”方法,这些方法只能从模块范围内访问,但除此之外,我认为它似乎是一种更难测试的模式。有人能解释一下为什么一些JavaScript程序员喜欢第二种方法作为一种本质上更好的模式吗?