Возвращение значения из функции
var value=foo();
function foo(){ function foo2(){ return "somevalue"; //внимание } foo2(); } /* Собственно, надеюсь, вы понимаете о чём речь. Нужно из функции, объявленной в функции, то есть из функции foo.foo2() заставить функцию foo() вернуть значение, и соответственно, завершиться Долблюсь уж несколько дней - не понимаю :blink: СПАСАЙТЕ!! */ |
return foo2(); |
так что ли?
var value=foo(); function foo(){ function foo2(){ return "somevalue"; //внимание } return foo2(); } |
Охты, точно
Но тут всё сложнее function foo(){ sthElem.onclick=function(){ foo.retval(); } function retval(){ return "somevalue"; //Во-во, вот так } } var value=foo(); Не спрашивайте, почему код такой тупой, это просто упрощённый вариант |
131 просмотр.... НУ ПОЖАЛУЙСТА
КТОНИБУДЬОТВЕТТЬЕ |
Во-первых, у foo нет свойства retval. Во-вторых, что вообще получиться-то должно?
|
Опс
Сорри Ступил Во function foo(){ sthElem.onclick=function(){ foo.retval(); } foo.retval=function(){ return "somevalue"; //Во-во, вот так } } var value=foo(); >> Во-вторых, что вообще получиться-то должно? Какое это имеет отношение к вопросу? Я задаю конкретный вопрос, надеясь получить конкретный ответ: "ты тупой, надо делать так и так" Мне не нужны советы по проекту, мне нужен определённый, причём правильный, без флуда ответ |
Цитата:
|
Ээх, приходится....
|
у вас тут в логике явный пробел.у вас выходит так:
1)вызываем функцию foo() 2)в ней выставляем обработчик события(который сработает позже, либо возможно никогда) 3)внутри обработчика события(который будет выполнен в будущем) инициируется переменная, которую мы ходим присвоить другой переменной сейчас наглядная аналогия: вы сказали своему 20-летнему сыну, чтобы ему пора женится(у него сейчас даже девушки нету), и пошли сразу же после разговора вклеивать в семейный альбом фотографию со свадьбы своего сына в общем, вам надо пересмотреть свою логику приложения поэтому у вас и спрашивают, что должно получится в итоге пока что ваши махинации выглядят весьма непонятно и бессмысленно |
Цитата:
|
Не важно, как они выглядят в вашем понимании
Функция должна ждать события, и только после этого возвращать значение и завершаться Событие будет, иначе быть не может, если сразу после этого не уничтожить объект :-) Это не важно Достаточно ~6 человек сказать "это невозможно" и привести доказательства и я пойму, что это невозможно Но скажите хоть что-то по теме!!!!!! Хотя бы один человек!!!!!! |
Цитата:
Цитата:
function foo(){ sthElem.onclick=function(){ foo.retval(); // ... сюда (можно не напрямую, а использовать callback) } foo.retval=function(){ return "somevalue"; //Во-во, вот так } } var value=foo(); // переносим этот код... p.s. флудишь пока что ты ;) Цитата:
|
|
Анекдот вполне в тему
Как и там, отвечаю: "Новичок: Спасибо, братан! То что нужно!!! " Но.... Не понял всё-таки :-) Можно готовый код? Извиняюсь, если сильно надоел __uploaded Цитата:
Цитата:
Вопрос №1version.2: "надо есть суп вилкой. Потому, что блаблабла, блаблабла" - это не глупость>> - ты так считаешь Но если бы ты отвлёкся от своей аксиомы, и логически подумал, что если не следовать этому правилу, то ответы на вопрос №1 и его мод версию - одинаковы Так какой смысл расписывать, почему надо есть суп вилкой, если от этого всё поменяется и, в худшую сторону Во-первых, топикстартеру придётся всё расписывать - трата времени (я и сейчас просто злюсь, что это пишу о_О) Во-вторых, я много раз видел, как люди, который хотят спросить "как есть суп вилкой" и всё преподробнейше объясняют. И что? И нет ответов. Никому не хочется разбираться в дебрях этого вопроса - хоть ты тресни по швам В-третьих, это вопрос уже не "как есть суп вилкой", а вопрос про проекту, который, возможно, топикстарту, следовавшему твоей аксиоме, до боли в мозгах костей задавать не хочется, по многим причинам, которым ни ему, по известным ему обстоятельствам (преимущественно секретность проекта итд), ни мне называть не хочется (опять время-время-время) Следовательно: почему топикстартер должен следовать твоей аксиоме, должен пренебрегать всеми фактами, который я назвал выше? Почему? Да не должен! Ты не доказал утверждение; я его опроверг Призываю: решайте проблему, не избегайте её! __uploaded__uploaded Кажется допёр Извиняюсь Ты про .call()? Сейчас попробую |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
p.s. тот текст не я написал про callback'и function a(callback) { ... callback(); ... } a(function() { ... }); |
Не понял коллбак
В гугле нет ничего о_О __uploaded Про ту статью - опять не доказал :-D |
Цитата:
Цитата:
|
o_O
Не понял Можно конкретный работающий код? Простатьюнадоелодоказыват ь |
Всё, понял
Это невозможно Верхняя функция уже отработала, только лишь назначила обработчик события и уничтожилась Соответственно, уже нельзя вернуть значение, так как функции уже нет Надо ждать, когда произойдёт событие, только после этого завершать функцию Соотв надо поставить цикл, который будет постоянно проверять, не произошло ли событие, если произошло, то заставить верхнюю функцию вернуть значение и, собственно, завершится Чем я сейчас и занимаюсь Ну чтож никто не сказал что это не возможно ^_^ |
Цитата:
|
Вопрос решён приведённым мною выше способом
Закрыть тему |
Часовой пояс GMT +3, время: 15:55. |