Тема: [не питання] Про eval
Я вже бачив дивну поведінку JS
але сьогодні знайшов ще дещо
В цьому куску коду є дві змінних 'myValue' одна локальна інша глобальна, зрозуміло що відповідь буде "1" тому що локальна змінна не впливатиме на глобальну
var myValue = 1;
(function() {
var myValue = 1;
eval('myValue = 2');
})();
alert(myValue);а от майже такий самий код
var myValue = 1;
(function() {
var myValue = 1;
refEval = eval;
refEval('myValue = 2');
})();
alert(myValue);але відповідь тут, вже буде "2"
так працювати не буде глобально
(eval)('something')але можна застосовувати знак коми, отак
(0,eval)('something')щоб код виконувався глобально
чи будь що інше що поверне eval
(true&&eval)('something')Я трохи про це почитав та дізнався що є прямий доступ до eval і через посилання, так ось, (0,eval) якраз дає це посилання. Якщо так виконувати код (0,eval)('something') то це буде виконуватися в глобальній області.
тут можна почитати більше про eval
