Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2018, 15:35
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

как вернуть значение из функции return
Доброго дня, возникла такая необходимость вернуть значение из функции но она прописана из другого метода

function send(xhttp)
{
   return xhttp.onreadystatechange = function() { ... return значение; }
   //она возвращает весь текст функции а не отработаное значение
}

подскажите пожалуйста что делать

Последний раз редактировалось Conus, 04.02.2018 в 15:38.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2018, 19:01
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

такое поведение невозможно по очевидным причинам. И всем уже надоело отвечать на этот вопрос.
Причина в том что ты используешь оператор "=" и оператор "function" если ты поймешь почему ты их используешь станет очевидно почему нельзя вернуть значение из вложенной функции.
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2018, 20:31
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

но xhttp.onreadystatechange это же состояние
если его проверить и по нему вернуть результат?
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2018, 21:08
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Сообщение от Conus
но xhttp.onreadystatechange это же состояние
какое нафиг состояние ....

"xhttp" -- это объект
"." -- точка это оператор который позволяет обратится к свойствам объекта
onreadystatechange -- это свойство объекта которому ты присваиваешь значение с помощью оператора "="
и присваиваешь ты ему результат работы другого оператора "function"

Твоя проблема в том что ты не понимаешь как работает строчка из трех операторов и придумываешь абстрактные понятия такие как "состояние". В JavaScript нет такого типа данных как "состояние" следовательно такой тип данных нельзя ни сохранить ни передать. Если тебе необходимо что то похожее ты должен сам это реализовать тем или иным способом.

В данном случае используется тип данных функция.

т.е. return xhttp.onreadystatechange = function() { ... return ...; } ---- вернуть объект свойству которому присвоена функция

Все. ненужно ничего усложнять и придумывать какие то состояния

Еще пару вещей от К.О.
1. Функция возвращает значение только когда ее вызывают
2. В приведенном коде функция присваивается свойству
3. В приведенном коде нет вызова функции которая присваивается свойству следовательно вернуть значение без вызова она не может.
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2018, 21:47
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

а когда или как происходит вызов функций из свойства
или что обращается к свойству как к функции?
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2018, 01:45
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Сообщение от Conus Посмотреть сообщение
а когда или как происходит вызов функций из свойства
или что обращается к свойству как к функции?
За это отвечает среда исполнения JavaScript она и вызывает эту функцию. Когда и почему это происходит обычно описывают в документации к среде исполнения или же стараются придерживаться общепринятого стандарта
https://xhr.spec.whatwg.org/#handler...adystatechange

Функции которые вызывает среда исполнения можно называть событиями.
Для того чтобы привязать события к конкретным объектам используют свойства этих объектов т.е. присваивают свойствам функции (обработчики событий)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение из сторонней функции? Poveritov Общие вопросы Javascript 0 14.09.2016 13:51
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
что делают функции Panwo Общие вопросы Javascript 2 21.10.2015 20:37
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 09:32
как из функции вернуть не сколько результатов. Telnet Общие вопросы Javascript 1 04.07.2011 09:43