因为我喜欢在Ruby On Rails中拆分代码是多么容易,使用模块和&类,我想知道,有什么错误/好分裂js代码分开,像这样:
var MyApp = {};
MyApp.db = {};
MyApp.settings = {};
// settings.js
// -------------
MyApp.settings.get = function () {
// do some stuff
};
MyApp.settings.set = function () {
// do some stuff
};
// -------------
// db.js
// -------------
MyApp.db.init = function () {
// do some stuff
};
// -------------
$(function () {
MyApp.db.init();
MyApp.settings.get();
MyApp.settings.set();
});
我已经阅读了有关使用原型的内容,但它并不像第一个例子那样清晰。
var MyApp = (function (my_app) {
my_app.init = function () {
// stuff
};
return my_app;
}());
MyApp.prototype.settings = (function (my_app) {
my_app.get = function () {
// stuff
};
my_app.set = function () {
// stuff
};
return my_app;
});
MyApp.init();
MyApp.settings.get();
MyApp.settings.set();
第一个例子在chrome浏览器上运行得很好(没有在其他人身上测试过),对我来说似乎比原型和其他人看得更清楚..而且我找不到类似于我的例子的任何信息,这让我想到,为什么人们不使用这个..
我也意识到,我的例子不是做事的常规方式,但是除此之外有什么理由,为什么我不应该使用第一个例子?
编辑:主要原因,我喜欢我的例子,是,我不想将MyApp初始化为新对象,我想将它拆分为多个文件。
EDIT2:我的主要问题是,有什么理由,为什么我不应该使用第一个例子,除了它不是'惯例'?
答案 0 :(得分:0)
在这种情况下,第二个例子并没有提供任何好处。如果您想声明一些既不应该在全局范围内也不应该作为MyApp
的公共方法公开的函数或变量,那将非常有用。使用原型也不会带来任何好处,因为您可能只有一个MyApp
实例(您将其用作命名空间,而不是您将要使用{实例化的对象{1}}关键字)。
例如:
new