Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамическое значение (например длину массива) запись в постоянное (https://javascript.ru/forum/misc/10012-dinamicheskoe-znachenie-naprimer-dlinu-massiva-zapis-v-postoyannoe.html)

Vulkan 15.06.2010 15:41

Динамическое значение (например длину массива) запись в постоянное
 
Здравствуйте, столкнулся с проблемой и не могу понять как решить, допустим:
function test(){
...
num=array.length // значение меняется часто
elem.onclick=function (){hide(num)} //закрыть объект с ID=num

Вот мне надо чтобы num был не текущий, а тот что был на определённый момент, вопрос - как записать динамически меняющее значение на данный момент в переменную, и чтобы там уже осталось это значение. Помогите пожалуйста, может в константу записать (хотя я о них в JS не слышал:) )?

Gvozd 15.06.2010 15:48

замыкания

Vulkan 15.06.2010 15:51

Цитата:

Сообщение от Gvozd (Сообщение 59600)
замыкания

Спасибо большое, сейчас буду про них читать :)

Vulkan 15.06.2010 20:28

Не могу понять, например, что здесь не так:
function test()
{
tabs[0] = 0
num=tabs.length-1 
tabs.push(num)
var numtab=function() {num=tabs.length-1}
return numtab}



И уже если подставить в другую функцию numtab, то не работает ничего, а если num то старая проблема - tabs.length часто меняется и не запоминается в переменной посстояно.

Kolyaj 15.06.2010 20:47

Цитата:

Сообщение от Vulkan
Не могу понять, например, что здесь не так:

А что здесь должно быть так?

Vulkan 15.06.2010 21:09

в первом посте всё изложено, пытаюсь сделать замыкание

Kolyaj 15.06.2010 21:41

В первом посте у вас переменная глобальная.

qwoiejfoiej 15.06.2010 22:00

Замкните лучше так.
elem.onclick = function(a){ return function() {hide(a)}}(num);

Vulkan 16.06.2010 10:10

qwoiejfoiej,не, это что-то уже инопланетное =). Kolyaj, переменная мне нужна глобальная, но вообще можно и сделать её локальной, но проблемы это не решает, тут вроде даже не в замыкании дело... Блин, вот проблема попалась...

Kolyaj 16.06.2010 10:17

Так чего вы от неё хотите, если вы её меняете постоянно? qwoiejfoiej показал, что вам нужно.


Часовой пояс GMT +3, время: 14:24.