2

我正在寻找构建不需要加载所有源文件来播放应用程序的系统的方法。我过去的项目有超过 200 个 .js 文件(我不是在开玩笑!),并且重新加载页面以测试您开发的功能真的很慢。

我查看了 Dojo,看到了他们是如何构建动态加载器的。基本上你只需加载一个核心组件,然后在需要时加载其他所有组件。

我正在考虑在我的应用程序中实现一个工厂方法,它允许我在 JavaScript 中构造对象的新实例:

var user = MyApp.create('MyApp.model.User');

代替:

var user = new MyApp.model.User();

我想放弃 new 关键字的原因是因为前一种方法允许我以延迟加载的方式动态加载组件,如果它不存在的话。工厂方法可以只查看目标对象是否已定义,如果未定义,则加载它。

我面临的唯一问题是 IDE 不再理解的事实user是类型MyApp.model.User肯定不是一件好事。

有没有办法解决这个困境?我可以以某种方式 JsDoc 那个工厂方法吗?

4

1 回答 1

2

如果您的工厂方法根据参数返回各种类型的对象,那么您无法以@returnsIDE 可以理解的方式记录工厂方法本身的返回值(使用 )。至少我不知道有什么方法可以做到这一点。

但是您可以通过注释保存对象的变量来轻松解决您的问题,如下所示:

/**
 * @type {MyApp.model.User}
 */
var user = MyApp.create('MyApp.model.User');

当然,我不知道您的特定 IDE 是否可以解释这一点。我的可以(使用科莫多)。

于 2011-11-01T21:03:37.063 回答