Javascript.RU

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

Доступ к значениям анонимной функции с консоли chrome
День добрый.
начал использовать самовызывающуюся анонимную функцию.
Столкнулся с проблемой вызова в консоли Хрома значений переменных из функции

(function () {
    var a1 = 100;
}());


var a2 = 200;



Ввожу a2... Выводит 200.. Все работает.
Ввожу в консоли a1. Выводит undefined
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2014, 14:24
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от jtjt1010
Ввожу в консоли a1. Выводит undefined
если ты так делаешь после того, как анонимная функция отработала - то все правильно. функция завершила работу, локальные переменные потерялись.
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2014, 14:27
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

a1 глобальна, она доступна только внутри ф-ции. Как вариант, обьявить её за ф-цией и присваивать значение внутри.

var a1;

(function () {
    a1 = 100;
}());


var a2 = 200;

console.log(a1);
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2014, 14:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2014, 15:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

danik.js,
то есть если поставить брекпоинт на функцию можно в этот момент посмотреть а1 или в функцию console.log(a1) - записал.
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2014, 15:16
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от рони Посмотреть сообщение
danik.js,
то есть если поставить брекпоинт на функцию можно в этот момент посмотреть а1 или в функцию console.log(a1) - записал.
дык, стандартный функционал дебаггера
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2014, 15:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Яростный Меч
дык, стандартный функционал дебаггера
моя неграмотна
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2014, 15:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
можно в этот момент посмотреть а1 или в функцию console.log(a1)
Можно вобще ниче не писать:

Именно поэтому я всегда оборачиваю код в анонимную функцию. Иначе искать глобальные переменные среди сотен других невозможно. Вот попробуй ща разверни Global и отыщи там a2
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 10.02.2014, 15:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

danik.js,
в глобал я конечно ничего ненашёл ... но вот этой фразы непонял
Сообщение от danik.js
Именно поэтому я всегда оборачиваю код в анонимную функцию.
я пробовал необорачивать вроде результат тотже
function x() {
    var a1 = 100;
} ;//breakpoints
x()
Ответить с цитированием
  #10 (permalink)  
Старый 10.02.2014, 15:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не не, я имею ввиду a2 - она глобальная. Вот ее хер найдешь в ▶Global
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к значениям свойств объекта в цикле Bandicoot Общие вопросы Javascript 4 04.02.2016 11:44
callback для анонимной функции gh321 jQuery 2 18.11.2013 13:20
Доступ к функции из другого js файла sitesv Events/DOM/Window 3 29.04.2013 16:28
Chrome выдает ошибку в консоли javascript LazySAge Opera, Safari и др. 0 16.06.2012 14:11
userJS доступ к переменным страницы (Chrome) DragorWW Opera, Safari и др. 2 13.07.2011 15:33