【发布时间】:2014-07-02 16:07:57
【问题描述】:
我想将一组变量作为函数的输入,然后定义它们以在该函数中使用。
例如:
var variables = {
foo: 1,
bar: 2,
};
function doSomething (scope) {
makeLocal(scope); // I'd like something to do this
return foo + bar;
}
doSomething(variables); // should return 3
这样的事情存在吗? PHP 有一个称为extract 的工具,我希望JavaScript 也存在类似的东西。我知道我可以向window 添加属性,但如果可能的话,我不希望污染我的全局命名空间。
【问题讨论】:
-
scope.foo + scope.bar有什么问题? -
@entropic 我计划有很多变量,并且要大量使用它们。如果可以的话,我宁愿不要到处都有“范围”(甚至是一个字符的变量名)
-
在 JS 中没有原生方法。如果这可以使用一些丑陋的
eval()技巧来完成,你必须在doSomething()中完成,否则新变量将在makeLocal()的范围内。
标签: javascript scope