这是使用模块和MVC模式创建类似“ hello world”的JS应用程序的非常基本的尝试。
var appModules = {};
appModules.exampleModul = (function () {
var _data = ['foo', 'bar']; // private variable
return {
view: {
display: function() {
$('body').append(appModules.exampleModul.model.getAsString());
},
},
model: {
getAsString: function() {
return _data.join(', ');
},
}
};
})();
appModules.exampleModul.view.display();
效果很好,但是我不满意必须使用完整的对象路径
appModules.exampleModul.model.getAsString()
从视图中引用模型函数的方法。如何将公共模型方法公开给视图,以便可以简单地使用model.getAsString()
之类的东西?还是我需要以不同的方式组织代码? 最佳答案
一种选择是您可以将那些对象转换为私有实现。
appModules.exampleModul = (function() {
var _data = ['foo', 'bar'];
// private variable
var _view = {
display : function() {
$('body').append(_model.getAsString());
},
};
var _model = {
getAsString : function() {
return _data.join(', ');
},
};
return {
view : _view,
model : _model
};
})();