как выполнить функцию в контексте локальных переменных
имеем такой код
<script> var $=6; function f(){alert($)}; function my(){ var $=11; f()//6 }; my();</script> как заставить функцию f выводить 11? что то у меня без eval не получается |
<script type="text/javascript"> var $ = 6; function f() { alert($) }; function my() { $ = 11; f()//6 }; my(); </script> Использование локальных и глобальных переменных поможет разобраться |
Либо Определение функций с параметрами
какой вариант больше нравится и устраивает <script type="text/javascript"> var $ = 6; function f(v) { alert(v) }; function my() { var $ = 11; f($); }; my(); </script> |
Цитата:
с помощью eval получается жуткая конструкция eval('('+f.toString()+')()')//11 |
я же первым ответом написал пример, дело в том что вы создаете в функции my() локальну переменную, а не меняете значение глобальной
|
vadim5june,
можно писать без var и она заменит глобальную переменную var $=6; function f(){alert($)}; function my(){ $=11; f()//11 }; my(); |
Цитата:
|
Цитата:
она будет выполнятся в контексте локальных переменных если будет объявлена внутри функции-и наверн без eval это невозможно |
а такой вариант?
<script type="text/javascript"> var $ = 6; function my() { var $ = 11; var f = function () { alert($) } f(); }; my(); </script> |
Цитата:
с помощью eval я как раз это делаю Это я простой пример привел-на самом деле функция очень большая и у нее много переменных которые надо выполнять в контексте локальных переменных в разных функциях объявлять везде не получится-передавать параметрами большая морока |
Часовой пояс GMT +3, время: 09:08. |