【发布时间】:2016-03-26 19:44:00
【问题描述】:
感谢this awesome answer,我能够将单例模式之类的东西放入我的 JavaScript 应用程序(单页)中。不幸的是,我仍然无法理解这实际上是如何工作的。这可能与我没有真正了解require() 调用的具体工作原理有关。
引用链接的答案:
模块的第一个要求将加载和导出它。其他一些需要你的单例的模块只会重用已经导出的模块。
(仍在引用)
define(function (require) {
var singleton = function () {
return {
...
};
};
return singleton();
});
所以过程如下,只是为了确保我理解它。如有错误,请更正流程说明。
在模块A 中,我引入了单例模块。
在该模块中,定义了一个返回对象的函数。模块的返回/导出值是该函数的结果。
现在在模块 B 中,我还 require 单例模块并取回单例第一次创建时创建的对象 required。
单例数据在第一个需求和第二个需求之间位于何处?
我只是不明白这个对象共享是如何工作的,我一直认为require 是某种“虚拟粘贴”,但这似乎是非常错误的。实际发生了什么?
【问题讨论】:
标签: javascript module requirejs singleton