Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Генерация и зацпск цепных функций (https://javascript.ru/forum/misc/46279-generaciya-i-zacpsk-cepnykh-funkcijj.html)

Tek 04.04.2014 10:52

Генерация и зацпск цепных функций
 
Есть задача создавать цепные функции и запускать (из json). На ум приходит только eval. Подскажите есть ли более элегантный способ?

ksa 04.04.2014 10:55

Цитата:

Сообщение от Tek
На ум приходит только eval. Подскажите есть ли более элегантный способ?

Как вариант...

function test(){
	alert('Ok');
};
window['test']();

Tek 04.04.2014 11:10

Боюсь вариант не подойдет, запускать нужно из blackbox объекта (TweenLineMax.js библиотеки), да ещё и передавать в каждый метод ряд параметров

ksa 04.04.2014 11:15

Цитата:

Сообщение от Tek
запускать нужно из blackbox объекта (TweenLineMax.js библиотеки)

Это мне мало о чем говорит...

Задачки всегда удабнее решать следующим образом:
- у меня есть вот "это"
- как имея "это", сделать "то-то"

Цитата:

Сообщение от Tek
да ещё и передавать в каждый метод ряд параметров

Передавай их сколько душа пожелает... :) В этом нет никаких ограничений.

Tek 04.04.2014 11:33

Ну может быть на примере будет понятнее http://codepen.io/Tek/pen/jbocH?editors=001

ksa 04.04.2014 13:30

Цитата:

Сообщение от Tek (Сообщение 306006)
Ну может быть на примере будет понятнее http://codepen.io/Tek/pen/jbocH?editors=001

С таким набором мало что сделать...

Tek 04.04.2014 13:46

т.е. оставаться только eval? :(

nerv_ 04.04.2014 13:47

изменить формат json. Кстати, это даже не json :)

Tek 04.04.2014 13:58

Цитата:

Сообщение от nerv_ (Сообщение 306044)
изменить формат json. Кстати, это даже не json :)

а на что изменить? (а главное потом запустить). Изначально думал, из json создавать объект который пропускаю через метод который исполняет код.

ksa 04.04.2014 14:59

Цитата:

Сообщение от Tek
а на что изменить?

На что-то типа такого...

var a=[
	{
		name: 'имя метода1',
		args: ['значение1',...,'значениеN1']
	},
	{
		name: 'имя метода2',
		args: ['значение1',...,'значениеN2']
	}
];


Часовой пояс GMT +3, время: 12:20.