我正在开发一个非常大的 JavaScript Web 应用程序,但实际上没有方法。似乎有人试图将所有内容声明为名为“app”的主对象的一部分。原始程序作为单个 app.js 文件存在,包含超过 30 万行代码,其中声明了以下内容:
var app = {};
除此之外,应用程序中的所有内容都是这样编写的。
app.somefunction = function(args, callback) {
some code
};
这显然使作者能够轻松地使用 Eclipse IDE“大纲”,我承认我已经开始享受拥有它,以前从未成为 IDE 用户,我正在转变为他们提供的细节。
我的问题是,当我对这个庞大的代码库进行分阶段重构时,可能会尝试将其合并到某种更成熟的框架中,也许使用 require.js 之类的东西,是否可以拆分“app.js”分成更小的文件,并且为了能够使用 IDE 大纲声明应用程序在每个文件中都等于其自身,以便保持理智。
app = app;
我已经对此进行了测试,据我所知,它可以工作,并且它允许 IDE 将所有后续功能添加到大纲窗口,同时使项目更易于管理,同时我了解它实际上在做什么。这样做有什么缺点吗?我想可能会出现一些异步加载问题;这可能会增加客户端开销;或者这是完全可以接受的?
我意识到这是一个代码哲学问题,但简单的问答是,app=app; 会产生什么效果?有吗?
最佳答案
这样做没有问题。
事实上,这是非常常见的代码:
var app = app || {};
仅当变量尚无值时才对其进行初始化。如果它已经有一个值,它将完全等于您的 app = app;
此技术对于初始化大型对象(如多个 block 中的对象)也很有用,允许您随意重新排序和省略 block ,同时通过执行 var app = {}
确保没有 block 会删除另一个 block 的初始化。
关于javascript - 为了重构一个大项目,在Javascript中声明一个对象等于它自己是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30170198/