В смещениях битов JavaScript (>>
, <<
) всегда выполняются для подписанных 32-битных целых чисел. Это приводит к переполнению диапазона для больших чисел.
Прежде всего, var [a, b] = f()
работает просто великолепно в JavaScript 1.7 - пробуют его!
with()
:
var array = [1,2];
with (assign(array, { var1: null, var2: null }))
{
var1; // == 1
var2; // == 2
}
, Конечно, это не позволит Вам изменять значения существующих переменных, так по моему скромному мнению, это намного менее полезно, чем функция JavaScript 1.7. В коде я пишу теперь , я просто эхо-сигналы непосредственно и ссылаюсь на их участников - я буду ожидать этих 1,7 функций для становления более широко доступным.
Вам не нужен макет "_" переменная. Можно непосредственно создать "глобальные" переменные при помощи объема объекта окна:
window["foo"] = "bar";
alert(foo); // Gives "bar"
Вот еще немного точек:
Вот то, что я придумал:
function destructure(dest, src) {
dest = dest.split(",");
for (var i = 0; i < src.length; i++) {
window[dest[i]] = src[i];
}
}
var arr = [42, 66];
destructure("var1,var2", arr);
alert(var1); // Gives 42
alert(var2); // Gives 66