Как выполнить метод в виде переменной
Здравствуйте!
Подскажите пожалуйста, как можно выполнить вот такое? Здесь у меня undefined: val = 'HeLLo WOrld'; exp = "replace(/s*/g,'-')" alert(val[exp]) В плагине пользователь передает текст и шаблон поиска в JS и получает результат. То есть нужно сложить конструкцию из двух переменных: text + method статический вариант такой: val = 'HeLLo WOrld'; rusult = val.replace(/s*/g,'-') alert(rusult) Перечитал много документации, но никак не получается... А вот если с именем функции - получается. Спасибо! |
eval('val.' + exp);
|
Цитата:
А есть возможность обойтись без eval? |
Цитата:
вот если юзер будет присылать только регекс (и строку для замены), то легко. |
HJ90, есть, можно так.
var val = 'HeLLo WOrld';
var ex = "replace(/s*/g,'-')";
var test = new Function('return val.' + ex + ';');
alert( test() );
|
Цитата:
Ruslan_xDD, большое Вам спасибо!! :) |
Цитата:
можно так:
var val = 'HeLLo WOrld';
var ex = "replace(/s*/g,'-')";
var _test = new Function('val,ex', 'return val.' + ex + ';');
var test = function() { return _test(val,ex); };
alert( test() );
|
Яростный Меч, странно, только что тестил - всё работает.
|
Цитата:
|
А как понимать такую запись "Function" ?
Первый раз такое вижу... аа, блин ..все ок |
| Часовой пояс GMT +3, время: 14:54. |