gpt4 book ai didi

module-pattern - 我可以使用带有 javascript 模块模式的类吗?

转载 作者:行者123 更新时间:2023-12-02 07:37:02 25 4
gpt4 key购买 nike

我有一堆跟在 "JavaScript Module Pattern" as described in this popular article 后面的“模块”。 .据我了解,这些模块是将各种行为聚合到整洁的命名空间中的一种方式。

但是,如果我希望能够创建一个接受参数的唯一对象实例呢?就目前而言,我不能这样做,因为所有数据都是共享/静态的。我希望能够做到这一点:

var foo = new Some.Namespace.Whatever.Foo(config);

我无法更改模式的结构,因为我们已经使用了一段时间,而且效果很好。我只想对其进行调整,以便可以将一些“类”放入其中,以处理非静态数据。

最佳答案

为什么不试试这个?

var MODULE = (function () {
var my = {};

my.SomeClass = SomeClass;
function SomeClass(six) {
this.six = six;
}
SomeClass.prototype.five = 5;

return my;
})();

当您调用 var obj = new MODULE.SomeClass(6)它会给你一个新的对象。 obj.fiveSomeClass 的所有实例之间共享因为它附在原型(prototype)上。但是, obj.six特定于该实例,因为它附加到 obj .

或者,您可能不需要将您的类放在模块中。您可以在适当的情况下使用类来替换模​​ block ,因为在这种情况下,模块和类都有一些重叠的功能。

关于module-pattern - 我可以使用带有 javascript 模块模式的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15252441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com