Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать локальную переменную глобальной?? (https://javascript.ru/forum/misc/1372-kak-sdelat-lokalnuyu-peremennuyu-globalnojj.html)

Дмитрий 03.07.2008 14:22

Как сделать локальную переменную глобальной??
 
Как сделать локальную переменную x, которая вычисляется в функции и возвращается ею,
глобальной.
var y; //какая то глобальная переменная
function somefunction(){;
var x;
x=1;
return x;// функция вычисляющая локальную переменную
}
// нужно как то присвоить y значение полученное в функции - x.
Заранее спс)

Dmitry A. Soshnikov 03.07.2008 16:26

Дмитрий, вопрос не о JS, а о программировании в целом. Посмотрите, что такое функция и зачем, в частности, она возвращает вычисленное значение.

Gvozd 03.07.2008 16:56

var y;
function somefunction()
{
var x=1
window.y=x //если y-глобальная переменная, то является свойством window
y=x //если y-переменная внешней ф-ции, то присваиваем напрямую, прочитав перед этим статью про замыкания
return x
}

либо
var y=somefunction()

Semen 29.10.2010 01:45

неполучается присвоить глобальной переменной значение
 
Вот такой код не работает:
var inf;
function sdf(){window.inf="abrakadabra"}

в результате undefined
Если сделать такой код:
var inf;
function sdf(){window.inf="abrakadabra"; alert(inf)}

в окне alert - присвоенное значение

Подскажите почему вот эта конструкция window.inf= не присваевает значение глобальной переменной в теле функции?

mat_ppc 29.10.2010 02:02

var inf;

function sdf(){inf="abrakadabra";}

sdf();

alert(inf);

Semen 29.10.2010 02:36

более подробное описание задачи...
 
Задача заключается в том, чтобы передать переменные сформированные в php через клик по кнопке глобальным переменным javascript:
$you_x="100";
...$jkl="<td><INPUT TYPE='radio' NAME='OK' value='take' onclick='sdf($you_x);'></td>";

при клике на radio запускается функция sdf($you_x):
function sdf($you_x) {var r=$you_x; alert(r); ...?...}

alert - работает, показывает значение, а :( ...?... - вот тут и необходимо присвоить глобальной переменной значение $you_x, т.к. работать это значение в дальнейшем будет вне функции.

Как вывести это значение из функции и присвоить его глобальной переменной?

var inf=function sdf($you_x);

не работает (с учетом того что в конце функции return r).

Может както по другому можно, как это значение вывести из функции?

mat_ppc 29.10.2010 03:56

блииияя... Тебе же написали....

$ - это объявления переменных в php
var - в JS

var t='Глобальная переменная';

alert(t);

function t_inc(){return 'это бля значение из функции(возвращаемое)';}

t = t_inc();

alert(t);

function t_chng(){t='Это я решил просто изменить значение глобальной переменной t в функции t_chng();';}

t_chng();

alert(t);

function t_arg(arg)
{
    var t;  /*тут спецом объявил тоже t, но область её видимости в теле функции, тем не менее из-за названия она перекрывает глобальную переменную t.*/

    t = arg;
    return t;
}

t_arg('Для проверки');

alert(t); //глобальная t не изменилась

t=t_arg('Это решил передать значение через аргуемнт функции');

alert(t);


Чтиво на ночь:

http://javascript.ru/var
http://javascript.ru/basic/functions
http://javascript.ru/tutorial/object/inheritance

и чтобы добить:

http://web.artlebedev.ru/tools/technogrette/js/likbez/

Semen 30.10.2010 14:36

mat_ppc - спасибо конечно за ссылки на то, что мне хорошо известно, но они не помогли.
Удалось передать переменные php (как строки так и цифровые значения) в javascript и использовать в соответствии с задуманной целью - другим способом.

vladlen 02.11.2010 03:33

function sdf(you_x){
var r = you_x;
alert(r);
window.r = r
}

Мля, Gvozd тоже самое написал. Вы читать умеете?


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