Bob*_*y B 2 javascript module-pattern
我有一堆“模块”,它们遵循这篇流行文章中描述的“JavaScript 模块模式”。据我了解,这些模块是将各种行为聚合到整洁的命名空间中的一种方法。
但是,如果我希望能够创建一个接受参数的唯一对象实例怎么办?就目前情况而言,我无法这样做,因为所有数据都是共享/静态的。我希望能够做到这一点:
var foo = new Some.Namespace.Whatever.Foo(config);
Run Code Online (Sandbox Code Playgroud)
我无法改变该模式的结构,因为我们已经使用它有一段时间了,而且效果很好。我只是想调整它,这样我就可以在其中添加一些处理非静态数据的“类”。
为什么不试试这个呢?
var MODULE = (function () {
var my = {};
my.SomeClass = SomeClass;
function SomeClass(six) {
this.six = six;
}
SomeClass.prototype.five = 5;
return my;
})();
Run Code Online (Sandbox Code Playgroud)
当你调用它时,var obj = new MODULE.SomeClass(6)它会给你一个新对象。obj.five在 的所有实例之间共享,SomeClass因为它附加到原型。但是,obj.six特定于该实例,因为它附加到obj.
或者,您可能不需要您的类位于模块内。您可以在适当的情况下使用类来替换模块,因为在这种情况下,模块和类都有一些重叠的功能。
| 归档时间: |
|
| 查看次数: |
5846 次 |
| 最近记录: |