Показать сообщение отдельно
  #3 (permalink)  
Старый 06.02.2012, 13:55
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Разбиваете строку например с помощью split, если вы уверены что строка всегда будет приходить валидная, получаете массив названий вложенных пространств иен. Затем начиная от корня пространства имен (если notes и store - глобальны, то это window) начинаете добираться до вашего метода и потом его вызываете.
var str = "my.deep.deep.namespace.and.method";

var pkgs = str.split("."), // Если вы не уверены что строка 100% валидная, то надо парсить регуляркой и проверять лишние точки, точки в начале, в конце и прочее, но думаю это лишнее

root= window;

for (var i = 0, l = pkgs.length; i < l; i ++) {
    root = root[pkgs[i]]; //   Тут не плохо бы проверять, есть ли на этом месте объект
}

root();


Это был грубый пример. Если вы себе сами пишете эти методы и сами себе присылаете строки, то есть вам не подсунут зловещий код 100%, пользуйтесь eval, почему нет..
__________________
readOnly
Ответить с цитированием