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();
}
}
3.
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();
}
Почему бы вам не сделать это? –
Если «переменные» действительно длинны, например: namespace.constructors.blah.dramatic.variables , а на содержимое переменных много ссылок, тогда полезно иметь его содержимое в локальных переменных. Можно использовать ключевое слово «с», но у него есть свои проблемы. пример прост для упрощения. –
Вам следует избегать использования 'eval()' util, вы знаете JS достаточно хорошо, чтобы знать, когда абсолютно необходимо использовать его, потому что его медленный и его использование обычно считается плохой практикой. – xj9