Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2008, 13:22
Новичок на форуме
Отправить личное сообщение для Дмитрий Посмотреть профиль Найти все сообщения от Дмитрий
 
Регистрация: 03.07.2008
Сообщений: 5

Как сделать локальную переменную глобальной??
Как сделать локальную переменную x, которая вычисляется в функции и возвращается ею,
глобальной.
var y; //какая то глобальная переменная
function somefunction(){;
var x;
x=1;
return x;// функция вычисляющая локальную переменную
}
// нужно как то присвоить y значение полученное в функции - x.
Заранее спс)
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2008, 15:26
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Дмитрий, вопрос не о JS, а о программировании в целом. Посмотрите, что такое функция и зачем, в частности, она возвращает вычисленное значение.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2008, 15:56
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

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

либо
var y=somefunction()
Ответить с цитированием
  #4 (permalink)  
Старый 29.10.2010, 00:45
Аспирант
Отправить личное сообщение для Semen Посмотреть профиль Найти все сообщения от Semen
 
Регистрация: 28.07.2009
Сообщений: 67

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

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

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

Подскажите почему вот эта конструкция window.inf= не присваевает значение глобальной переменной в теле функции?
Ответить с цитированием
  #5 (permalink)  
Старый 29.10.2010, 01:02
Аватар для mat_ppc
Аспирант
Отправить личное сообщение для mat_ppc Посмотреть профиль Найти все сообщения от mat_ppc
 
Регистрация: 29.04.2010
Сообщений: 31

var inf;

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

sdf();

alert(inf);
Ответить с цитированием
  #6 (permalink)  
Старый 29.10.2010, 01:36
Аспирант
Отправить личное сообщение для Semen Посмотреть профиль Найти все сообщения от Semen
 
Регистрация: 28.07.2009
Сообщений: 67

более подробное описание задачи...
Задача заключается в том, чтобы передать переменные сформированные в 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).

Может както по другому можно, как это значение вывести из функции?
Ответить с цитированием
  #7 (permalink)  
Старый 29.10.2010, 02:56
Аватар для mat_ppc
Аспирант
Отправить личное сообщение для mat_ppc Посмотреть профиль Найти все сообщения от mat_ppc
 
Регистрация: 29.04.2010
Сообщений: 31

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

$ - это объявления переменных в 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/

Последний раз редактировалось mat_ppc, 29.10.2010 в 03:22.
Ответить с цитированием
  #8 (permalink)  
Старый 30.10.2010, 13:36
Аспирант
Отправить личное сообщение для Semen Посмотреть профиль Найти все сообщения от Semen
 
Регистрация: 28.07.2009
Сообщений: 67

mat_ppc - спасибо конечно за ссылки на то, что мне хорошо известно, но они не помогли.
Удалось передать переменные php (как строки так и цифровые значения) в javascript и использовать в соответствии с задуманной целью - другим способом.
Ответить с цитированием
  #9 (permalink)  
Старый 02.11.2010, 02:33
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать такую галерею crisco Events/DOM/Window 4 23.12.2008 15:28
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 05:58
как сделать ссылку перехода на скрипт bazhan Общие вопросы Javascript 6 04.09.2008 09:56
Как сделать, что бы изображения пропадали. Dronch Элементы интерфейса 7 28.08.2008 20:55
Как обозначить переменную выбранную в FileChooser? woo_hoo Общие вопросы Javascript 4 03.07.2008 11:58