我很想将变量声明放在一个函数中,这样它们就不会占用一大堆空间,但是类似的东西甚至可能吗?
如果你的意思是:
function one() {
var a, b, c, d, e, f;
// ...
}
function two() {
var a, b, c, d, e, f;
// ...
}
(例如,每个函数都有其自己的变量副本。)
...你想要的
// Doesn't work
function declare() {
var a, b, c, d, e, f;
}
function one() {
declare();
// ...use a, b, etc. here
}
function two() {
declare();
// ...use a, b, etc. here
}
不,你不能那样做。
如果在多个地方使用同一组变量,您可以考虑将变量封装在一个对象中。事实上,整个事情听起来可能会被重构为一个对象。
但无需过多重构:
function declare() {
return {
a: /*...*/,
b: /*...*/,
c: /*...*/,
d: /*...*/,
e: /*...*/,
f: /*...*/,
};
}
function one() {
var o = declare();
// ...use o.a, o.b, etc.
}
function two() {
var o = declare();
// ...use o.a, o.b, etc.
}
但同样,这是影响最小的解决方案。就像这样,如果您以可以将事物组织成对象的想法来查看您的整体代码,您会发现比上面更不人工的方式。