Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Доступ к значениям анонимной функции с консоли chrome (https://javascript.ru/forum/misc/44999-dostup-k-znacheniyam-anonimnojj-funkcii-s-konsoli-chrome.html)

jtjt1010 10.02.2014 14:20

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

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


var a2 = 200;



Ввожу a2... Выводит 200.. Все работает.
Ввожу в консоли a1. Выводит undefined

Яростный Меч 10.02.2014 14:24

Цитата:

Сообщение от jtjt1010
Ввожу в консоли a1. Выводит undefined

если ты так делаешь после того, как анонимная функция отработала - то все правильно. функция завершила работу, локальные переменные потерялись.

ruslan_mart 10.02.2014 14:27

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

var a1;

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


var a2 = 200;

console.log(a1);

danik.js 10.02.2014 14:35


рони 10.02.2014 15:11

danik.js,
то есть если поставить брекпоинт на функцию можно в этот момент посмотреть а1 или в функцию console.log(a1) :write: - записал.

Яростный Меч 10.02.2014 15:16

Цитата:

Сообщение от рони (Сообщение 296935)
danik.js,
то есть если поставить брекпоинт на функцию можно в этот момент посмотреть а1 или в функцию console.log(a1) :write: - записал.

дык, стандартный функционал дебаггера

рони 10.02.2014 15:20

Цитата:

Сообщение от Яростный Меч
дык, стандартный функционал дебаггера

моя неграмотна :cray:

danik.js 10.02.2014 15:27

Цитата:

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

Можно вобще ниче не писать:

Именно поэтому я всегда оборачиваю код в анонимную функцию. Иначе искать глобальные переменные среди сотен других невозможно. Вот попробуй ща разверни Global и отыщи там a2 :-E

рони 10.02.2014 15:41

danik.js,
в глобал я конечно ничего ненашёл ... но вот этой фразы непонял
Цитата:

Сообщение от danik.js
Именно поэтому я всегда оборачиваю код в анонимную функцию.

я пробовал необорачивать вроде результат тотже
function x() {
    var a1 = 100;
} ;//breakpoints
x()

danik.js 10.02.2014 15:50

Не не, я имею ввиду a2 - она глобальная. Вот ее хер найдешь в ▶Global


Часовой пояс GMT +3, время: 12:01.