for (var i in variables) {
eval('var ' + i + ' = variables[i]');
}
基本上,我想將變量屬性轉移到局部變量。如何在沒有eval的情況下執行此操作()
是否有使用的eval()
或者其中這些是替代更好:
1.
var _ = variables;
for (var i = 0; i < 100000; i++) {
_.test1();
_.test2();
_.test3();
}
2.
with (variables) {
for (var i = 0; i < 100000; i++) {
test1();
test2();
test3();
}
}
var test1 = variables.test1,
test2 = variables.test2,
test3 = variables.test3;
for (var i = 0; i < 100000; i++) {
test1();
test2();
test3();
}
4.
for (var i in variables) eval('var ' + i + ' = variables[i]');
for (var i = 0; i < 100000; i++) {
test1();
test2();
test3();
}
爲什麼在這個世界上你想要這樣做? – 2010-08-08 18:22:38
如果'變量'真的很長,如:namespace.constructors.blah.dramatic.variables 並且變量的內容被引用很多,那麼將它的內容放在局部變量中很有用。 可以使用'with'關鍵字,但有它自己的問題。 該示例很簡單。 – 2010-08-08 18:29:41
你應該避免使用'eval()'util,你知道JS很好,知道什麼時候它是絕對必要的,因爲它的速度慢,而且它的使用通常被認爲是不好的做法。 – xj9 2010-08-08 20:01:21