Определение имени функции как динамического

0

У меня есть один динамический элемент и функциональность на моем сайте. Каждый динамически сгенерированный элемент имеет разную функциональность, но у меня есть одно и то же имя функции для всех элементов. У меня проблема с заменой значения внутри функции обратного вызова.

Поэтому мне нужно определить имя функции как динамическое.

Я не знаю, возможно это или нет в javascript/jquery. :

var count= 1;

...
...

  function test+count() { // Here count will be replacing the value of count variable

    ...
    ...
  }


...
...
count++;
...
...

Это мои потребности.

Существуют ли какие-либо возможности/другие способы удовлетворения этих потребностей?

Заранее спасибо...

  • 1
    чего ты хочешь добиться? это звучит как мистерия, и я уверен, что вы пытаетесь сделать это сложным и неуместным способом
  • 0
    window[test+count()]()
Показать ещё 7 комментариев
Теги:
function

3 ответа

3
Лучший ответ

Определение

function name() {}

равно

window.name = function() {}

и

window['name'] = function() {}

и

var function_name = 'na' + 'me';
window[function_name] = function() {}

Это должно ответить на ваш вопрос.

  • 0
    Нет , на самом деле нет . А свойства window всегда глобальны, чего не следует делать.
  • 0
    @ Берги Я думаю, что это работает jsfiddle.net/sfBK8/12
Показать ещё 5 комментариев
2

Вместо множества похожих функций с разными именами вы можете определить один, который изменил бы его поведение в зависимости от принятого параметра count:

function test(count) {
    // alter behavior depending on count value
}
0

Вы можете попробовать это,

Определение

var count=1;
for(;count<5;count++)
{   
var name="test_name"+count;
window[name] = new Function('alert( "Inside '+name+'")');
}

Назовите его динамически

for(count=1;count<5;count++)
{   
 window["test_name" + count]();
}   

демонстрация

  • 0
    Помимо изменения синтаксиса, чем это отличается от предыдущего window[name] = function() {alert("hello world");} стиля ответов?
  • 0
    @TrueBlueAussie, теперь оно обновлено

Ещё вопросы

Сообщество Overcoder
Наверх
Меню