ФорумПрограммированиеJavaScript → Даж и не знаю как назвать

Даж и не знаю как назвать

  • Dash

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz Окт. 30, 2010, 10:55 п.п.

    Допустим у меня есть метод в классе с названием addOne(). и есть некий метод load() куда на вход подается название ф-ии callback и внутри мне его надо вызвать. Т.е. я хочу сделать load и запустить addOne() в конце. пришлось реализовать так

    arm.prototype.load = function(callback) {
    //тут просисходит подгрузка виджета;

    // а тут идет вызов callback функции
    eval('this.' + callback +'();');
    }

    Но вот сраный eval меня никак не возбуждает. Так вопрос собственно в том как вызвать метод класса, в методе load, получив на входе его название в виде строки? Не используя eval
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Окт. 31, 2010, 1:03 п.п., спустя 15 часов 8 минут 20 секунд

    this[callback]();
  • Dash

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz Окт. 31, 2010, 3:52 п.п., спустя 2 часа 48 минут 24 секунды


    this[callback]();


    Не работает
  • ЗлобныйТролль

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz Ноя. 1, 2010, 6:55 п.п., спустя 1 день 3 часа 3 минуты

    код в студию.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Ноя. 2, 2010, 11:18 п.п., спустя 1 день 4 часа 23 минуты

    Dash, ознакомься с этим - http://javascript.ru/unsorted/async
  • ЗлобныйТролль

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz Ноя. 11, 2010, 6:07 п.п., спустя 8 дней 18 часов 49 минут

    Dash, а что есть callBack - метод инстанса OrderARM? Если да, тогда

    _this[callBack](data);


    если просто некая функция, тогда

    callBack(data);
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Ноя. 11, 2010, 6:09 п.п., спустя 1 минуту 38 секунд

    а я давно знаю решение "проблемы", только это не проблема, а неправильная архитектура :)
    Сапожник без сапог
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz Ноя. 11, 2010, 8:24 п.п., спустя 2 часа 14 минут 48 секунд

    callback() не?))
  • Dash

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz Ноя. 25, 2010, 12:48 п.п., спустя 13 дней 16 часов 24 минуты

    phpdude, я знаю что неверная. Просто когда весь геммор всплыл то было уже поздно (нарисовалась добавочка к ТЗ которая в корне перевепнула весь ф-л) т.к. тут было написано "многа букаф", а на рефакторинг времени нет. Вот и задал вопрос, как реализовать в таком виде, но без eval. Я понимаю что нужно было обернуть в обертку где был бы стэк колбэков который бы отрабатывался после всех запросов, да и процентов 70 я бы уже сейчас переделал. Да и структуру объекта нужно было бо поменять полностью но время не позволяет.

    rider-sx, object.callback() и object[callback]() - не

Пожалуйста, авторизуйтесь, чтобы написать комментарий!