Как достать переменную из функции javascript
Перейти к содержимому

Как достать переменную из функции javascript

  • автор:

Вытащить переменную из функции Javascript

Не получается вытащить значение переменной из функции, всё время выводится ошибка Uncaught ReferenceError: devuuid_raw is not defined Задача такая: нужно вывести значение переменной за пределы функции, т.к далее значение переменной будет посылаться через другую функцию на сервер. Код:

 document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() < console.log("Device is ready"); var element = document.getElementById('devProps'); devuuid_raw = device.uuid; return devuuid_raw; element.innerHTML = 'Идентификатор устройства: ' + device.uuid + '
'; > var devuuid = devuuid_raw;

Отслеживать
задан 13 апр 2014 в 14:00
red_sensor red_sensor
25 2 2 серебряных знака 7 7 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вы абсолютно не понимаете, как работает JavaScript. Рекомендую почитать «Книгу с носорогом». Три грубейшие ошибки:

  1. Код после инструкции return (он не выполнится)
  2. Объявление переменной без ключевого слова var
  3. Непонимание того, что на момент выполнения этой строки: var devuuid = devuuid_raw;

onDeviceReady еще не сработал.

Отслеживать
ответ дан 13 апр 2014 в 14:24
2,391 2 2 золотых знака 18 18 серебряных знаков 23 23 бронзовых знака

Спасибо за ответ, return я изначально не ставил, так посоветовали сделать на другом форме, что для меня тоже показалось странным, переменную без var я объявил глобально, в надежде что она будет видна за пределами функции, но увы она не видна. Насчет «onDeviceReady еще не сработал.» не понимаю, а когда он сработает? Нужно ли объявить переменную по-другому?

13 апр 2014 в 14:35

он сработает в функции onDeviceReady() , вы можете вызвать из нее другую. это называется асинхронное выполнение. для понимания медитируйте на вот такой код: var a=0; setTimeout(setA,1000); //одноразовое событие таймера, через 1с function setA() < a=1; >console.log(a); //0

13 апр 2014 в 14:43

Спасибо, это немного проясняет ситуацию. Моя ситуация похожа на ваш пример, но мне как раз нужно чтобы вывелось 1, если исходить из вашего примера

13 апр 2014 в 15:59

так var a=0; setTimeout(setA,1000); //одноразовое событие таймера, через 1с function setA() < a=1; showA(); >function showA() < console.log(a); //1 >

13 апр 2014 в 16:22

подобный вариант пробовал, в том то и дело нужно обойтись без второй функции, а сделать как у вас здесь: var a=0; setTimeout(setA,1000); //одноразовое событие таймера, через 1с function setA() < a=1; >console.log(a); //0 только чтобы в итоге вывелось 1 т.е чтобы в итоге переменная а была по за функцией и была равна 1 (какое значение ей было задано в функции, такое же должно быть в этой переменной и вне функции)

Как достать переменную из функции?

Привет. Если я создаю функцию function qwe(), то как можно достать переменную x? Когда функция отрабатывает (если брэйкпоинт поставить), то можно достать — написать в консоли x; При этом, если я пишу window,x; — будет уже undefined, хотя записи x; и window,x; значат одно и то же.

Что такое execution context?Напишите, пожалуйста, своими словами — как сами понимаете. как execution context соотносится со scope (областью видимости)? это разные вещи или нет?

  • Вопрос задан более трёх лет назад
  • 2893 просмотра

как вернуть значение из функции js

Чтобы вернуть некое значение из функции используется ключевое слово return . В качестве значения может быть что угодно, в зависимости от цели и задачи для этой функции.

Пример ниже показывает функцию, которая возвращает значения типа boolean . Такие функции называются предикатами.

function isHero(person)  return person.name === 'Harry Potter'; > const person = 'Huge Plotter'; isHero(person); // false 

Курсы javascript

HackerSniper, что должен был проиллюстрировать твой пример?

20.10.2011, 22:28

Регистрация: 17.10.2011

Сообщений: 53

получить переменную из функции

20.10.2011, 22:35

Регистрация: 19.08.2010

Сообщений: 14,092

HackerSniper, CACA и caca — разные переменные. И функции так не пишут.

Например CACA можно вернуть из функции.

function TACA() < var CACA='Ok'; return CACA; >caca=TACA() alert(caca)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *