作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组全局对象。这些全局变量可以有不同的设置。
var s1 = {
test1: 10,
test2: 20
}
var s2 = {
test1: 10,
test2: 50
}
...
我有一组使用这些对象进行 self 配置的类。它们可能看起来像这样:
var classA = function(s) {
this.pA1 = s.test1 + s.test2;
this.pA2 = Math.sqrt(s.test1);
}
var classB = function(s) {
this.pB1 = s.test1 * s.test2;
this.pB2 = s.test1 + s.test2 - s.test1 * s.test2;
}
...
这些类的实例是:
var iA1 = new classA(s1);
var iB1 = new classB(s1);
...
var iA2 = new classA(s2);
var iB2 = new classB(s2);
...
实际上,我有更多设置、类和实例。
如何在不每次传递参数的情况下做到这一点?
最佳答案
function factory(s) {
return {
iA: new classA(s),
iB: new classB(s),
iC: new classC(s),
iD: new classD(s)
};
}
var set1 = factory(s1),
set2 = factory(s2),
...
或者:
function factory(constructors, arg1, arg2) {
var res = {};
for (var i in constructors) {
var ctor = constructors[i];
res[ctor.name] = new ctor(arg1, arg2);
}
return res;
}
var constructors = [ classA, classB, classC ];
var set1 = factory(constructors, s1),
set2 = factory(constructors, s2),
...
关于JavaScript:如何将单个全局对象传递给一组类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317941/
我是一名优秀的程序员,十分优秀!