Update2:
То, что я действительно хотел спросить, уже обсуждалось на другой странице. Пожалуйста, проверьте следующую запись.
(Спасибо BobS.)
Как я могу получить динамический доступ к локальной области видимости в javascript?
Привет.
Я начал использовать jQuery, и мне интересно, как динамически вызывать функции в анонимной функции из String. Скажем, например, у меня есть следующие функции:
function foo() {
// Being in the global namespace,
// this function can be called with window['foo']()
alert("foo");
}
jQuery(document).ready(function(){
function bar() {
// How can this function be called
// by using a String of the function's name 'bar'??
alert("bar");
}
// I want to call the function bar here from String with the name 'bar'
}
Я пытался выяснить, что может быть аналогом «окна», которое может вызывать функции из глобального пространства имен, например, window["foo"]. В приведенном выше небольшом примере, как я могу вызвать панель функций из строки «bar»?
Спасибо за помощь.
Обновление:
Вот что я хочу:
- Определите функции, которые используются только в замыкании.
- Избегайте создания объекта в замыкании, который содержит эти функции, чтобы к нему можно было получить доступ как obj['bar'].
- Избегайте eval (если возможно), чтобы писать код более простым способом (если он существует).
- Определите имя функции динамически через параметр URI или любую переменную.
Будучи новичком в Javascript, я подумал, что «это» будет аналогом «окна» в закрытии, и попытался написать:
// in the closure
name = 'bar';
this[name]; // undefined ...
и не удалось (конечно...).
Все это для погони за дальнейшей ленью. Javascript для меня в новинку, и в настоящее время я пытаюсь писать как можно более ленивый код.
barв виде строки? Рассматривали ли вы определение этих функций там, где они вам нужны? - person Kobi   schedule 08.03.2010